C'est parce que votre propriété doit correspondre à la réelle ivar type de classe.
Une solution possible/solution de contournement:
//Foo.h:
@interface Foo
{
NSMutableArray* mutableArray;
}
@property (readwrite, nonatomic, retain) NSArray* array;
//or manual accessor declarations, in case you're picky about wrapper-properties.
@end
//Foo.m:
@interface Foo ()
@property (readwrite, nonatomic, retain) NSMutableArray* mutableArray;
@end
@implementation
@synthesize mutableArray;
@dynamic array;
- (NSArray *)array {
return [NSArray arrayWithArray:self.mutableArray];
}
- (void)setArray:(NSArray *)array {
self.mutableArray = [NSMutableArray arrayWithArray:array];
}
@end
Vous êtes en train d'ajouter un privé mutableArray
propriété dans une classe de vulgarisation et de sensibilisation du public array
il suffit d'envoyer à votre mutable un.
Avec les plus récentes extensions de langage de ObjC, j'ai tendance à supprimer l'
{
NSMutableArray* mutableArray;
}
ivar bloc entièrement, si possible.
Et de définir les ivar à travers le synthesization, comme tel:
@synthesize mutableArray = _mutableArray;
ce qui va générer un NSMutableArray *_mutableArray;
exemple pour vous.