• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > foreachiOS的foreach执行原理

foreachiOS的foreach执行原理

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了foreach循环的原理,foreach原理,java foreach原理,foreach和for的区别,foreach等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:foreach iOS的foreach执行原理
描述:

我用for。。in的方式去遍历一个NSMutableArray,但是当遍历的时候,改变array,就会导致crash。看解释说是因为改变元素的时候,之前的元素全部被失效,但是想知道实现的具体原理。

 iOS的foreach执行原理


解决方案1:

for in实际上是快速枚举,跟for循环意义上还是有区别的。

NSArray的枚举操作中有一条需要注意:对于可变数组进行枚举操作时,你不能通过添加或删除对象这类操作来改变数组容器。如果你这么做了,枚举器会很困惑,而你将得到未定义的结果。

而本身这种操作也是有问题的,数组容器已经改变,可能遍历到没有分配的位置,用for循环机器不能自己察觉,但是枚举器可以察觉。

这个错误(<__NSArrayM: 0xa4fc000> was mutated while being enumerated.)的意思是:枚举的过程中数组发生了突变

解决方案2:

记得书上好像说的是为了安全,遍历的时候内部会转换成NSeArray操作吧。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • foreachiOS的foreach执行原理

相关文章

  • 2017-06-05 trycatchtrycatch的使用
  • 2017-06-05 swiftchar+int怎么写?
  • 2017-06-05 iOS开发支付宝支付成功返回字符串怎么处理获取参数
  • 2017-06-05 IOSswiftUICollectionView中cell的间距如何设置,请大神讲解。
  • 2017-06-05 iOS基础控件iOS中UITextView字数统计中英?
  • 2017-06-05 IOS如何实现Androidhandler功能
  • 2017-06-05 关于下拉控件
  • 2017-06-05 ipa安装ios的ipa包可以二次打包吗
  • 2017-06-05 应用上传appStore被拒,给了三个崩溃日志,在上传时没有生成dysm文件,怎么看这种崩溃日志?
  • 2017-06-05 苹果上传API,上传不了问题!

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 苹果mac笔记本(swift)没有苹果Mac电脑怎么上传APP?
    • ios是什么iOS抽象工厂什么时候用
    • 给textview添加placeholder属性问题
    • ipad屏幕旋转IPAD屏幕旋转不了
    • 你们的红点是推送来的么?还是使用http接口
    • 可以实现快速切换前置摄像头和后置摄像头,并且需要快速切换后马上拍一张照片?
    • 七牛视频断点续传
    • 为什么当CoreAnimation完成时,layer又会恢复到原先的状态?
    • 透明内裤裆可以看到毛iOSNSArray可以指定内容对象吗?
    • iOS远程推送IOS使用个推消息推送无法收到通知

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有