2010-10-12 3 views
0

Disons que j'ai un contrôleur simple vue avec une propriété UITableView:Dois-je déclarer une variable privée pour une propriété IBOutlet *?

@interface MyViewController : UIViewController { 
    UITableView *tv; // <-- DO I NEED THIS?? 
} 
@property (nonatomic, retain) IBOutlet UITableView *tv; 
@end 

Ai-je vraiment besoin de déclarer la UITableView * TV? J'ai trouvé que même si je ne le déclare pas (et simplement @synthesize la propriété), tout fonctionne bien. Pourtant, beaucoup d'échantillons de code déclarent explicitement la variable. Je ne suis pas sûr de savoir quel est l'avantage de le déclarer (ou le mal de ne pas le déclarer).

Répondre

1

En Objective-C 2.0, le compilateur va synthétiser le stockage pour vous ainsi que les accesseurs. Cela n'avait pas l'habitude d'être le cas, d'où tous les exemples où les gens déclarent explicitement l'ivar.

1

Non vous ne devez pas le déclarer, synthétiser prendra soin d'injecter dynamiquement le code au moment de la compilation. D'un autre côté, vous ne pourrez pas inspecter la variable directement dans Xcode si vous ne la déclarez pas, c'est l'inconvénient.

+0

Quelles seront les valeurs par défaut? (conserver, nonatomique)? – willcodejavaforfood

+1

@willcodejavaforfood vous spécifiez ces attributs dans la déclaration de propriété, pas la déclaration ivar, donc vous les contrôlez toujours. –

+0

merci Thomas – John

Questions connexes