rae*_*rne 0 comparison compare objective-c nsmutablearray nsarray
我如何比较两个NSArray,以便我可以删除两个数组中没有的所有内容.
我试过这样的:
NSArray *array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
NSArray *array2 = [NSArray arrayWithObjects:@"1",@"2",@"5",@"6", nil];
NSMutableArray *myMutableArray = [NSMutableArray arrayWithArray:array1];
NSMutableArray *myMutableArrayTwo = [myMutableArray copy];
[myMutableArray removeObjectsInArray:array2];
[array1 release];
[array2 release];
NSArray *array3 = [myMutableArray copy];
[myMutableArrayTwo removeObjectsInArray:array3]; // Error here: "SIGABRT"
NSLog(@"array3:%@",myMutableArrayTwo);
Run Code Online (Sandbox Code Playgroud)
但由于错误,它不起作用.它是:" - [__ NSArrayI removeObjectsInArray:]:无法识别的选择器发送到实例0x4e51550"
我做错了什么?或者有更简单的方法来解决我的问题?谢谢您的帮助
这是因为您创建了NSMutableArray的副本(不可变),因此您正在丢失可变功能.
请改用该mutableCopy方法.
顺便说一句,你有很多内存问题.您array1和array2变量是自动释放的对象.释放它们会引发问题.
您只需要释放您创建的数组alloc,copy或mutableCopy.