Cocoa Fundametals J'ai trouvé le code suivant:Subclassing de NSMutableArray
@interface ValidatingArray : NSMutableArray {
NSMutableArray *embeddedArray;
}
@end
@implementation ValidatingArray
- init {
self = [super init];
if (self) {
embeddedArray = [[NSMutableArray allocWithZone:[self zone]] init];
return self;
}
@end
Mais je ne comprends pas cette ligne de code:
embeddedArray = [[NSMutableArray allocWithZone:[self zone]] init];
Pourquoi nous utilisons cette initialisation au lieu d'allocation mémoire simple:
embeddedArray = [[NSMutableArray alloc] init];
Les zones sont effectivement déconseillées et doivent être entièrement ignorées. – bbum
@bbum: cette dépréciation est-elle documentée? –
Pas vraiment. Vous pouvez toujours utiliser des zones pour des choses, mais l'utilisation est limitée. Mélanger des zones avec Foundation et essayer de procéder à une désallocation en vrac (la plupart du point des zones) est une recette pour le désastre. – bbum