【发布时间】:2014-11-09 06:05:47
【问题描述】:
self.filteredProducts = [[NSMutableArray alloc] init];
//Find products
self.filteredProducts = (NSMutableArray*)[(NSMutableDictionary *)[self.CECategoriesDictionary objectForKey:category.categoryGuid] allValues];
if([self.oldfilteredProducts count] > 0 && selectedLevel==5)
{
NSMutableArray *diff = [self.filteredProducts mutableCopy];
[diff removeObjectsInArray:[NSArray arrayWithArray:self.oldfilteredProducts]];
[self.filteredProducts removeObjectsInArray:[NSArray arrayWithArray:diff]];
}
日志:
[__NSArrayI removeObjectsInArray:]: 无法识别的选择器发送到实例 0x1aed19d0 2014-09-15 22:00:19.243 SAPRetailEx [10325:90b] [错误]:未捕获的异常:-[__NSArrayI removeObjectsInArray:]:无法识别的选择器发送到实例 0x1aed19d0 2014-09-15 22:00:19.243 SAPRetailEx [10325:90b] [错误]:-[__NSArrayI removeObjectsInArray:]: 无法识别的选择器发送到实例 0x1aed19d0 2014-09-15 22:00:19.248 SAPRetailEx [10325:90b] [错误]:(
【问题讨论】:
-
您可能想尝试使用调试器检查设置后
diff的对象类型。它必须是NSMutableArray才能工作。另外,调用removeObjectsInArray:时不需要使用NSArray arrayWithArray:。您只是在浪费 CPU 和 RAM 来创建不需要的数组。 -
你不能改变一个不可变的对象。 (这就是异常消息清楚地告诉你的内容。)
标签: objective-c