Ir para conteúdo
Visualizar no app

Uma forma melhor de navegar. Saiba mais.

MM Fórum

Um app em tela cheia na sua Tela de Início com notificações push, avisos e mais.

Para instalar este app no iOS/iPadOS
  1. Toque no ícone de Compartilhamento no Safari
  2. Role o menu e toque em Adicionar à Tela de Início.
  3. Toque em Adicionar no canto superior direito.
Para instalar este app no Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

Postado

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

  • Respostas 3
  • Visualizações 883
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado

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!

Postado
  • Autor

Show Hercules,

muito obrigado pela sua resposta !

Vou dar uma olhada no link e qualquer coisa, volto a postar !

Abraços

  • 3 semanas depois...
Postado

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

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conta

Navegação

Buscar

Buscar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.