2012-04-03 4 views
4

Après avoir lu quelques tutoriels en ligne, j'ai vu 2 façons différentes de déclarer des propriétés. Je me demande si l'on est plus correct que l'autre:ios AppDelegate déclarations de propriétés

Option 1:

#import <UIKit/UIKit.h> 

@interface AppDelegate : NSObject 
@property (strong, nonatomic) UIWindow *window; 
@property (strong, nonatomic) UITabBarController *mytabs; 

@end 

Option 2:

#import <UIKit/UIKit.h> 

@interface AppDelegate : NSObject { 
UIWindow *window; 
UITabBarController *mytabs; 
} 

@property (nonatomic, retain) UIWindow *window; 
@property (nonatomic, retain) UITabBarController *mytabs; 

@end 

Répondre

2

La première option utilise comptage de référence automatique (ARC); le second ne le fait pas. Aucun des deux n'est «plus correct» que l'autre - le premier est simplement plus moderne. Vous devez utiliser ARC sauf si vous avez de fortes raisons de ne pas le faire (par exemple, en raison de la nécessité de prendre en charge le code existant sur les plates-formes héritées). Il s'agit d'un link pour en savoir plus sur ARC

1

L'option 1 a activé ARC. Depuis iOS5 SDK c'est l'option par défaut dans Xcode.

forte signifie que le contrôleur de vue va gérer cette variable

est ici un bon ARC tutorial pour iOS5.

L'option 2 a le comptage automatique des références désactivé. le contrôleur de vue se conserver (augmenter le nombre de retenir) lorsque la variable est

0

Il fut nécessaire de déclarer explicitement une variable d'instance pour sauvegarder chaque propriété. Avec le runtime "moderne", ce n'est plus nécessaire - votre directive @synthesize pour la propriété prendra soin de créer l'iVar s'il n'en existe pas déjà. Certaines personnes conservent toujours la déclaration ivar, soit par préférence ou simplement par habitude, et bien sûr vous verrez les ivars déclarés dans un code plus ancien. Un avantage de le faire est que vous pouvez voir plus facilement les valeurs de vos propriétés dans le débogueur. La différence entre l'utilisation de strong et retain est une question d'utilisation de ARC ou non, respectivement.

Questions connexes