Depuis de commencer à travailler sur les applications iOS et objective-C, j'ai été vraiment surpris par les différents endroits où l'on pouvait être à la déclaration et la définition des variables. Nous avons d'une part la traditionnelle C de l'approche, de l'autre nous avons la nouvelle ObjectiveC directives ajouter OO sur le dessus de cela. Pourriez-vous les gens m'aide à comprendre les meilleures pratiques et les situations où je voudrais utiliser ces emplacements pour mes variables et peut-être en raison de ma compréhension actuelle?
Voici un exemple de classe (.h et .m):
#import <Foundation/Foundation.h>
// 1) What do I declare here?
@interface SampleClass : NSObject
{
// 2) ivar declarations
// Pretty much never used?
}
// 3) class-specific method / property declarations
@end
et
#import "SampleClass.h"
// 4) what goes here?
@interface SampleClass()
// 5) private interface, can define private methods and properties here
@end
@implementation SampleClass
{
// 6) define ivars
}
// 7) define methods and synthesize properties from both public and private
// interfaces
@end
- Ma compréhension de la 1 et la 4, c'est que ceux sont des C-style de fichier de la base de déclarations et les définitions qui ont absolument aucune idée de la notion de classe, et doivent donc être utilisé exactement de la façon dont ils seront utilisés en C. je les ai vus utilisé pour la mise en œuvre de variable statique à base de singletons avant. Existe-il d'autres commode utilise je suis absent?
- Mon prendre de travailler avec iOS, c'est que ivars ont été alost complètement éliminé à l'extérieur de la @synthétiser la directive et donc peut être la plupart du temps ignoré. Est-ce le cas?
- Sujet 5: pourquoi aurais-je besoin de déclarer les méthodes dans les interfaces privées? Mes méthodes de la classe semblent compiler correctement sans une déclaration dans l'interface. Est-ce principalement pour des raisons de lisibilité?
Merci beaucoup, gens!