ios - objective-c 中这两个for循环之间的区别

标签 ios objective-c for-loop

好吧,我正在构建一个 iOS 游戏,我觉得我对 objective-c 有很好的掌握,但是让我痛苦的一件事是引用 -我在使用以下 for 循环时遇到的错误

for (MyObject *object in nsMutableArrayOfObjects) {
    // do things with object
}

对比

for (int i = 0; i< nsMutableArrayOfObjects.count; i++) {
    // do things with nsMutableArrayOfObjects[i];
}

我按顺序运行了其中的一些(第一个循环示例),但我一直收到 EXC_BAD_ACCESS 错误。我也有一些循环嵌套,我会把它们放在另一个里面。我真的很想知道关键区别是什么。我假设差异与它们引用数组中对象的方式有关。

最佳答案

您发布的第一个示例使用快速枚举 - 枚举集合的首选方法。
Apple 在 Collections Programming Guide 中提供了详细信息.

我不确定是什么导致了您的情况下的 EXC_BAD_ACCESS(听起来更像是内存管理问题)。但是在使用快速枚举时要记住的一件事是,您不能改变正在枚举的集合。

关于ios - objective-c 中这两个for循环之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176834/

相关文章:

ios - 如何确定用户是否与 GPS 坐标在同一条道路上

objective-c - cocoa -/+ 声明

ios - 使用自动版式,当导航栏消失时如何将UILabel保持在同一位置?

r - 如何打印包含列的特定值的行?

c - 在字符串中搜索子字符串

ios - 限制表格 View 中的文本字段进入

android - 将 iOS 枚举转换为 Android

ios - 删除 NSString 底层缓冲区的特殊问题

iphone - “类消息的接收者类型“CCParticleBatchNode”是前向声明”

c - 在 for 循环中使用变量作为数组的索引而不是在每次迭代中计算它们真的更快吗?