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这个数组来找到与我匹配项并且删除,问题就处在这里,不稳定,需要建立一个副本,在副本中进行更换,然后将这个副本赋值给原先的数组。
{
[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这个数组来找到与我匹配项并且删除,问题就处在这里,不稳定,需要建立一个副本,在副本中进行更换,然后将这个副本赋值给原先的数组。
相关文章推荐
- 第一次使用Android Studio 需要知道的配置
- Android系统的音量控制
- Unity5打包assetbundle
- Android BroadcastReceiver生命周期分析
- @RequestMapping
- Android Toolbar 使用
- 微信开发(3)语音,视频
- Android的图表世界–如何使用MPAndroidChart
- Android实现下拉菜单Spinner效果
- Android系统中使用shareuserid获取系统权限的教程
- Android Studio 基础总结
- Android 自定义TabHost
- 如何分析解决Android ANR
- xcode7、iOS9 设置启动图片(Launch Image)
- Android自定义样式对话框Dialog
- 深度揭秘阿里移动端高性能动态化方案Weex
- Android实现单项、多项选择操作
- iOS Category Extension 区别
- iOS的LaunchImage 和AppIcon的设置以及要求总结
- HTML5 Application Cache