IOS中Foreach使用不当会引起NSGenericException

 最近在做一个应用时,测试时发现一个我写的控制器控制节点出现了问题,开始报NSGenericException错误,日志报的原因时迭代遍历元素时,元素被改变了,一开始我认为是线程同步出了问题,所以把迭代过程用线程锁保护了起来,但是发现问题依旧,然后开始不停查资料,最终发现问题居然在控制器为节点发消息的循环上。

为贺兰等地区用户提供了全套网页设计制作服务,及贺兰网站建设行业解决方案。主营业务为成都网站设计、成都网站建设、贺兰网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

原因就在这 "foreach",它的内部遍历使用了类似 Iterator进行迭代遍历,一旦元素变动,之前的元素全部被失效,所以在foreach的循环当中,最好不要去进行元素的修改动作,若需要修改,循环改为for遍历,由于内部机制不同,不会产生修改后结果失效的问题。

总结一下:遍历元素时,若需要修改原元素,不要使用foreach,而使用for循环。


本文名称:IOS中Foreach使用不当会引起NSGenericException
文章起源:http://bzwzjz.com/article/ghoojd.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站建设公司 成都网站建设公司 成都网站制作 网站制作 网站建设费用 广安网站设计 企业网站建设 宜宾网站设计 网站建设方案 成都企业网站制作 成都网站制作 温江网站设计 成都网站建设 企业网站建设公司 成都网站设计制作公司 成都做网站建设公司 阿坝网站设计 成都网站建设 成都网站制作 商城网站建设 网站设计制作 手机网站制作