Ios Swift 2.2抛出二进制运算符错误的For循环更新
我正在尝试更新我的一些swift代码,以符合swift 2.2指南。我正在尝试更新我的for循环,这是我目前拥有的Ios Swift 2.2抛出二进制运算符错误的For循环更新,ios,swift,for-loop,Ios,Swift,For Loop,我正在尝试更新我的一些swift代码,以符合swift 2.2指南。我正在尝试更新我的for循环,这是我目前拥有的 for(var i = 0; persons?.count > i; i += 1){} 这就是我认为我应该使用的 for i in (0..<persons?.count){} 中的i(0..问题是persons?.count可能是nil和0..问题是persons?.count可能是nil和0..persons在这里是什么?一个对象数组这里是什么?一个对象数组感
for(var i = 0; persons?.count > i; i += 1){}
这就是我认为我应该使用的
for i in (0..<persons?.count){}
中的i(0..问题是persons?.count
可能是nil
和0..问题是persons?.count
可能是nil
和0..persons在这里是什么?一个对象数组这里是什么?一个对象数组感谢简单而干净的解决方案!实际上,在测试了过载之后,斯威夫特似乎不喜欢它,因为它会导致无限循环(代码)。非常感谢@originaluser2,我希望我能为此给你一些代表。@overactor没问题:)将nil
的处理隐藏在自定义运算符后面不是一个好主意。更好的解决方案可能是处理persons
早于nil
的情况。对于数组,我们可以使用空数组[]
而不是在大多数情况下的nil
。然后计数将是0
。感谢简单而干净的解决方案!事实上,在测试了过载后,斯威夫特似乎不喜欢它,因为它会导致无限循环(。感谢一堆@originaluser2,我希望我能为此给你一些代表。@overactor没问题:)将nil
的处理隐藏在自定义运算符后面不是一个好主意。更好的解决方案可能是处理persons
早于nil
的情况。对于数组,在大多数情况下,我们可以使用空数组[]
而不是nil
。然后计数将是0
。
for i in 0..<(persons?.count ?? 0) {
doStuff(i)
}
func ..<<T:ForwardIndexType where T:Comparable>(lower: T, upper: T?) -> Range<T> {
return lower..<(upper ?? lower)
}
for i in 0..<persons?.count {
doStuff(i)
}
guard let persons = persons else {
// take care of business
}
for person in persons {
doStuff(person)
}