Je regardais la WWDC ARC introduction de la vidéo et j'ai vu quelque chose que je n'ai jamais vu en ObjC avant lorsque certains Apple ingénieur parlé d'une Pile par exemple.
Le code suivant a été utilisé pour une pile de exemple avec de l'ARC:
@implementation Stack
{
// instance variable declared in implementation context
NSMutableArray *_array;
}
- (id)init
{
if (self = [super init])
_array = [NSMutableArray array];
return self;
}
- (void)push:(id)x
{
[_array addObject:x];
}
- (id)pop
{
id x = [_array lastObject];
[_array removeLastObject];
return x;
}
@end
Veuillez noter que la variable d'instance a déclaré juste après le @de mise en œuvre de la directive.
Maintenant, la chose qui m'a surpris, c'est qu'une variable d'instance pourrait en fait être déclarée dans le fichier d'implémentation, sans être une variable statique. Mes questions sont les suivantes:
- Est-ce une nouvelle construction introduit dans le SDK pour iOS 5 ou cela a été possible pendant un certain temps?
- Serait-il bon de les déclarer les variables d'instance dans la mise en œuvre, si les variables d'instance ne sont pas accessibles en dehors de l'objet? Il semble de façon plus propre, l'utilisation de l' @privé de la directive.