在我的班级MyClass1中,NSMutableArray
声明了这样:
NSMutableArray *somearray = [NSMutableArray new];
NSMutableArray *somearray2 = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3", nil];
[somearray addObject: somearray2];
稍后我创建另一个类的实例并像参数一样发送此数组:
Myclass2 *secondclass = [Myclass2 new];
[secondclass updateData: somearray];
在updateData中:
-(void) updateData:(NSMutableArray *) myArray{
[myArray[0][1] replaceObjectAtIndex:1 withObject:@"Some text"]; // here receive error
}
并收到错误,我如何发送链接到我的" somearray"到另一个班级和他一起工作(不是复制他们)?我可以创建全局变量,但不能做到这一点。
抱歉,我更新了我的问题。
错误
2014-09-09 12:40:38.778 FCalendar[12644:613] -[__NSArrayI replaceObjectAtIndex:withObject:]: unrecognized selector sent to instance 0x10963fec0
2014-09-09 12:40:38.783 FCalendar[12644:613] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI replaceObjectAtIndex:withObject:]: unrecognized selector sent to instance 0x10963fec0'
答案 0 :(得分:2)
您已创建NSArray
个实例而不是NSMutableArray
。
试试这个:
NSMutableArray *somearray = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
编辑:你纠正了你的问题,所以我修改了我的答案。
这行代码错误NSMutableArray *somearray2 = [[NSMutableArray new]initWithObjects:@"1",@"2",@"3", nil];
,您应该使用NSMutableArray *somearray2 = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3", nil];
代替。
然后[myArray[0][1] replaceObjectAtIndex:1 withObject:@"Some text"];
,我认为它应该是[myArray[0] replaceObjectAtIndex:1 withObject:@"Some text"];
。希望这是你想要的,还有很长的路要走。