Voici la page Web où j'ai découvert que vous pouvez automatiquement vous propriétés synthétisées et déclarer également de nouvelles propriétés dans les extensions de classe. Cela donne aussi un peu d'histoire intéressante.
http://www.mcubedsw.com/blog/index.php/site/comments/new_objective-c_features/
En ce qui concerne le style et l'exactitude, je l'ai utilisé principalement pour les propriétés des deux dernières semaines et il a fait mon code semble assez propre! Je peux maintenant déclarer des propriétés privées dans mon implémentation et ne pas les exposer dans l'en-tête rendant toute interface pour utiliser mes classes très simple et non confuse à utiliser.
J'ai rencontré un problème lors de l'utilisation de l'interface de construction où un iVar à toutes les sous-vues d'un contrôleur de vue doit encore être déclaré dans l'en-tête pour constructeur d'interface pour le voir comme IBOutlet et lui assigner. Vous pouvez toujours déclarer les @private bien et ont les propriétés privées déclarées dans une extension de classe dans votre implémentation si vous voulez vraiment comme une propriété pour vous d'utiliser.
// In your header
@interface MenuViewController : UIViewController {
@private
IBOutlet UIButton *buttonPeopleShouldNotKnowAbout;
}
@end
// And in your implementation
@implementation MenuViewController()
@property (nonatomic, readwrite, assign) IBOutlet UIButton *buttonPeopleShouldNotKnowAbout;
@end
Quelles sont les meilleures pratiques pour cela? Laissez-le dehors pour le rendre propre, ou gardez-le dans l'intérêt de l'explicité? –
@Jess Bowers: Je les laisse actuellement afin de les référencer '' init' et dealloc', mais commencer à les quitter après Clang 2.0. –