Ir para conteúdo
  • Cadastre-se
Thiago D. Chiarato

(Dúvida) IBOutlet - @Property X Instance Variable

Posts Recomendados

Boa Noite,

Sou iniciante no desenvolvimento de app`s para iOS e tenho uma dúvida.

Em alguns livros, li sobre a criação de Outlet's como variáveis de instância do Controller e em outros lí sobre a criação de properties para os mesmos.

Antes desta nova atualização do XCode 4.5, éramos obrigados a usar o sintesize. Desta forma "onerando" a criação destes outles em 1 linha a mais de código por outlet's (em relação as variáveis de instância).

Após a versão 4.5, o sintesize é automático. Desta forma, me deixando confuso sobre qual usar, pois o esforço de criação de um Outlet como property ou Variável de instância é o mesmo.

E agora que entra a minha dúvida.

Existe alguma diferença (performance) ou alguma convenção que indique que devemos criar os Outlet's como Property ou Variáveis de instãncia?

Não se se me fiz claro nesta pergunta, mas é isso ai.

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja bem vindo!

Esta é uma pergunta realmente muito boa!

De um lida aqui: http://stackoverflow.com/questions/6113755/iboutlets-instance-variables-and-properties-best-practices

Eu particularmente utilizo como properties, mas imagino um caso em que seria necessário o uso via instance variables, em que declararíamos como private e outras classes não teriam acesso...

via properties fica mais chatinho de fazer...

Espero ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Hercules, hoje você não precisa se preocupar em criar uma variável de instancia para um IBOutlet, com o a nova versão do llvm que veio a partir do XCode 4.5 quando você cria uma @propertie você não precisa mais criar o @synthezise dessa maneira você tem automaticamente uma variavel de instancia daquela variavel. Por exemplo

Se eu definir na minha interface


@interface MinhaClass : UIViewController
@property (weak) IBOutlet UILabel *meuLabel;
@end
[/CODE]

na minha implementação eu não preciso mais fazer o @syntezise e eu teria 2 variáveis o self.meuLabel que se refere a minha propriedade, e _meuLabel que seria minha variavel de instancia, em uso ficaria

[CODE]
@implementation MinhaClasse
- (void)viewDidLoad
{
//acessando a propriedade
self.meuLabel.text = @"Definindo meu texto";
//acessando a variavel de instancia
_self.meuLabel.text = @"Definindo meu texto";
[super viewDidLoad]
}
@end
[/CODE]

Lembrando que o código dessa maneira é valido para qualquer tipo de propriedade não apenas as que levam IBOutlets

fiz uma palestra sobre isso no iMasters

http://www.ferbass.com/2012/08/16/off-topic-palestras-e-eventos/

Quer aprender mais sobre iOS veja meu curso no Edukee

http://www.edukee.com/pt/curso/ios-do-zero-a-appstore/ios-team-1/1524246446

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitante
Responder este tópico…

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Limpar editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.



  • Estatísticas do Fórum

    • Total de Tópicos
      48.283
    • Total de Posts
      413.910
×
×
  • Criar Novo...