在使用类中的属性与数组通信时,处理一个简单项目并且我的NSMutableArrays不会插入和反对。所以我去了Xcode中的命令行和main中的主要工作中创建的任何数组,如果我使用.notation与数组属性交谈,我得到错误无法识别的选择器。我查找了一些尝试使用方法添加对象的东西 - (void)addObjectsToArray {
MyClass *myObject = [[MyClass alloc] init];
[list addObject:myObject];
[myObject release];
OtherClass *anotherObject = [[OtherClass alloc] init];
[list addObject:anotherObject];
[anotherObject release];
}
但是任何时候我都要求我的数组添加对象或者insertObject我得到了无法识别的选择器错误(就是当我尝试使用self.array或任何地方的任何.array时)
这是我的班级.h没有代码只是属性。我正在尝试使用newObject.array然后在其上调用insertObject但是没有去...
@interface CheckArray:NSObject
@property(copy,nonatomic)NSMutableArray * array;
@end
主要是我
CheckArray * newObject = [[CheckArray alloc] init];
newObject.array = [[NSMutableArray alloc]init];
if (newObject.array) {
[newObject.array insertObject:testString atIndex:0];
}
NSLog(@" the new array is %@“, newObject.array);
日志说2015-01-19 00:14:32.940 TestOfMutableArray [16647:518334]新数组是( )所以它存在,但....
这是错误,为什么它不能识别insertObject?谢谢你能解释一下。
2015-01-19 00:05:59.884 TestOfMutableArray [16608:513530] - [__ NSArrayI insertObject:atIndex:]:无法识别的选择器发送到实例0x1001068d0 2015-01-19 00:05:59.885 TestOfMutableArray [16608:513530] ***由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [__ NSArrayI insertObject:atIndex:]:无法识别选择器发送到实例0x1001068d0'
答案 0 :(得分:0)
__NSArrayI
表示不可变数组,不可变数组不会声明用于改变其内容的方法。在某处您传递给.array NSArray
而不是NSMutableArray
答案 1 :(得分:0)
因为您使用copy
来声明您的属性,所以它会将其变为不可变的 NSArray 。尝试将copy
修改为strong
。
对于您的情况,您使用 NSMutableArray 指针来引用 NSArray 。这就是你无法插入的原因。