gpt4 book ai didi

swift - 遍历 NSOrderedSet

转载 作者:IT王子 更新时间:2023-10-29 05:13:55 27 4
gpt4 key购买 nike

我正在尝试迭代 NSOrderedSet 的一个实例。像这样:

func myFunc() {
var orderedSet = NSOrderedSet(array: [ 42, 43, 44])

for n in orderedSet {
NSLog("%i", n)
}
}

...但是 for 循环行会产生此编译器错误:

'NSOrderedSet' does not have a member named 'Generator'

现在我可以将它转换成这样的数组:

    for n in orderedSet.array {
NSLog("%i", n)
}

...但我想知道是否有更好的解决方案?

我也很想知道为什么可以迭代集合而不是有序集合? NSOrderedSet 实现了 NSFastEnumeration,所以它应该可以正常工作?

最佳答案

你可以迭代一个有序集

let orderedSet = NSOrderedSet(array: [ 42, 43, 44])
orderedSet.enumerateObjectsUsingBlock { (elem, idx, stop) -> Void in
println("\(idx): \(elem)")
}

更新:从 Swift 1.2 (Xcode 6.3) 开始,NSOrderedSet 符合SequenceType 并且可以用for ... in ... 枚举:

let orderedSet = NSOrderedSet(array: [ 42, 43, 44])
for elem in orderedSet {
println(elem)
}

关于swift - 遍历 NSOrderedSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26603657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com