您的位置:首页 > 移动开发

Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM:

2016-04-29 15:43 393 查看
在开发的过程中遇到这样的一个错误:if (button.selected)
{

[self.filterBtnArray addObject:[TNHotelFilterFlag flagWithType:TNHotelFilterFlagTypeOther name:button.titleLabel.text value:nil]];
} else
{
//当头部view中的button不被选中的时候,需要移除下面的flag
for (TNHotelFilterFlag *flag0 in self.filterBtnArray)
{
if ([flag0.name isEqualToString:button.titleLabel.text])
{
[self.filterBtnArray removeObject:flag0];
}
}
}

在运行的过程中crash,报错误提示如下:

Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM:

解决方法:

if (button.selected)
{

[self.filterBtnArray addObject:[TNHotelFilterFlag flagWithType:TNHotelFilterFlagTypeOther name:button.titleLabel.text value:nil]];
} else
{
//当头部view中的button不被选中的时候,需要移除下面的flag
NSMutableArray *temperyArry0 = [self.filterBtnArray mutableCopy];

for (TNHotelFilterFlag *flag0 in self.filterBtnArray)
{
if ([flag0.name isEqualToString:button.titleLabel.text])
{
[temperyArry0 removeObject:flag0];
}
}
self.filterBtnArray = temperyArry0;
}

原因:
在上面的代码,我是通过遍历self.filterBtnArray这个数组来找到与我匹配项并且删除,问题就处在这里,不稳定,需要建立一个副本,在副本中进行更换,然后将这个副本赋值给原先的数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: