NSEnumerator 的值是多少?
当 为 . 。 。在 。 。 。有空吗?
具体来说,当我们可以写:
NSArray *array;
// array allocated and initialized here.
for (id obj in array) {
// do something to the object here
}
为什么我们要使用 NSEnumerator?
when for . . . in . . . is available?
Specifically, when we can write:
NSArray *array;
// array allocated and initialized here.
for (id obj in array) {
// do something to the object here
}
Why would we ever use an NSEnumerator?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
NSEnumerator 是在快速枚举(for/in 循环)可用之前创建的。如果您愿意,可以将其视为向后兼容。
但是使用 NSEnumerator,您可以按自定义顺序枚举集合,例如向后:(
当然,由于 NSEnumerator 也支持 for/in 循环,您可以使用更好的方法:)
或者
通过子类化 NSEnumerator 来定义自己的迭代器类,例如
NSEnumerator was created before fast enumeration (for/in loop) was available. Think of it as backward-compatibility if you like.
But with NSEnumerator you can enumerate the collection in customized order, e.g. backwards:
(Of course, since NSEnumerator also supports for/in loop you can use a better way:
)
or define your own iterator class by subclassing NSEnumerator, e.g.