我初始化了一个像NSMutableArray *mutableArray = [[NSMutableArray alloc]init];
这样的可变数组。
我已经在NSLogs中打印了像NSLog(@"object class is %@",[mutableArray class]);
这样的对象类。
我初始化了一个可变数组,但对象的类显示为__NSArrayM
我尝试将项添加到mutableArray然后应用程序崩溃。我不知道问题出在哪里。请告诉我为什么它被认为是NSArray而不是NSMutableArray。
感谢Advace
答案 0 :(得分:1)
正如预期的那样,M
中的__NSArrayM
意味着可变。
NSArray
/ NSMutableArray
是一个类群集,您永远不应期望将该类直接打印为NSArray
或NSMutableArray
。
答案 1 :(得分:0)
对于Immutable数组,它返回
__NSArrayI // Here I is for Immutable
对于mutable,它返回
__NSArrayM // Here M is for Mutable
答案 2 :(得分:0)
可能是您正在为此可变数组分配一个非可变数组,或者您正在插入nil对象。你能否发布例外细节。
答案 3 :(得分:0)
[mutableArray insertObject:object atIndex:0]; (for first)
[mutableArray insertObject:object atIndex:[mutableArray count]]; (for last)
or [mutableArray addObject:object];
你是如何添加它们的?