And*_*ing 18 nsorderedset swift
我正在尝试迭代NSOrderedSet的实例.像这样的东西:
func myFunc() {
var orderedSet = NSOrderedSet(array: [ 42, 43, 44])
for n in orderedSet {
NSLog("%i", n)
}
}
Run Code Online (Sandbox Code Playgroud)
...但是for循环行会产生这个编译器错误:
'NSOrderedSet' does not have a member named 'Generator'
Run Code Online (Sandbox Code Playgroud)
现在我可以将它转换为这样的数组:
for n in orderedSet.array {
NSLog("%i", n)
}
Run Code Online (Sandbox Code Playgroud)
......但我想知道是否有更好的解决方案?
我也很想知道为什么迭代一套而不是有序集?NSOrderedSet实现NSFastEnumeration,所以它应该正常工作?
Mar*_*n R 40
您可以使用迭代迭代有序集
let orderedSet = NSOrderedSet(array: [ 42, 43, 44])
orderedSet.enumerateObjectsUsingBlock { (elem, idx, stop) -> Void in
println("\(idx): \(elem)")
}
Run Code Online (Sandbox Code Playgroud)
更新:从Swift 1.2(Xcode 6.3)开始,NSOrderedSet符合
SequenceType并可以枚举for ... in ...:
let orderedSet = NSOrderedSet(array: [ 42, 43, 44])
for elem in orderedSet {
println(elem)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12743 次 |
| 最近记录: |