Objective c Can';当使用self.array或任何.notation时,无法使数组工作
在处理一个简单的项目时,当使用类中的属性与数组对话时,我的NSMutableArrays不会插入和对象。因此,我转到Xcode中的命令行,以及从main在main work中创建的任何数组,然后如果我使用.notation与数组属性对话,我会得到无法识别的错误选择器。我查找了一些东西,并尝试使用一种方法添加对象,如 -(void)addObjectsToArray{Objective c Can';当使用self.array或任何.notation时,无法使数组工作,objective-c,xcode,properties,nsmutablearray,Objective C,Xcode,Properties,Nsmutablearray,在处理一个简单的项目时,当使用类中的属性与数组对话时,我的NSMutableArrays不会插入和对象。因此,我转到Xcode中的命令行,以及从main在main work中创建的任何数组,然后如果我使用.notation与数组属性对话,我会得到无法识别的错误选择器。我查找了一些东西,并尝试使用一种方法添加对象,如 -(void)addObjectsToArray{ MyClass *myObject = [[MyClass alloc] init]; [list addObject:myObj
MyClass *myObject = [[MyClass alloc] init];
[list addObject:myObject];
[myObject release];
OtherClass *anotherObject = [[OtherClass alloc] init];
[list addObject:anotherObject];
[anotherObject release];
}
但每当我要求我的数组添加Object或insertObject时,我都会得到无法识别的选择器错误(即当我尝试从任何地方使用self.array或ANY.array时)
这是我的类。没有代码,只有属性。我正在尝试使用newObject.array,然后对其调用insertObject,但没有成功
进口
@接口检查数组:NSObject
@属性(复制,非原子)NSMutableArray*数组
@结束
总的来说,我有
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测试多阵列[16647:518334]新阵列正在使用中(
)所以它是存在的,但是
下面是一个错误,为什么它不能识别insertObject?如果你能解释的话,谢谢你
2015-01-19 00:05:59.884测试多阵列[16608:513530]-[\uu NSArrayI insertObject:atIndex:]:发送到实例0x1001068d0的无法识别的选择器
2015-01-19 00:05:59.885测试可变数组[16608:513530]***由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:'-[\uu NSArrayI insertObject:atIndex::]:未识别的选择器发送到实例0x1001068d0'
\uu NSArrayI
表示不可变数组,不可变数组不声明用于改变其内容的方法。您传递给.array的某个地方是NSArray
而不是NSMutableArray
因为您使用copy
声明您的属性,它将把它变成不可变的,即NSArray。尝试将copy
修改为strong
对于您的情况,您正在使用一个NSMutableArray指针来引用一个NSArray。这就是您无法插入的原因。谢谢您这是problem@PetrosVoutsanesis不客气。通常情况下,如果答案正确,按复选标记将答案标记为已接受是很好的谢谢您是现在可以使用“强”而不是“复制”