Arrays 无法转换类型为';Int';到预期的参数类型'@noescape(Int?)抛出->;布尔';
我想检查Arrays 无法转换类型为';Int';到预期的参数类型'@noescape(Int?)抛出->;布尔';,arrays,swift,swift2,Arrays,Swift,Swift2,我想检查smallestar是否包含-1,如果它至少包含一个-1,则调用placeBlocks。我需要继续调用PlaceBlock,直到数组填满,这意味着他们输掉了比赛 我收到的错误是 无法将“Int”类型的值转换为预期的参数类型 “@noescape(Int?)抛出->Bool” 尝试将[Int?]更改为[Int](非可选数组成员) 请注意,来自SO线程的karthik:s回答建议您切换到使用-1,而不是将nil作为“非赋值”。如果使用该方法,则没有理由选择smallestar:使用[Int]
smallestar
是否包含-1,如果它至少包含一个-1,则调用placeBlocks。我需要继续调用PlaceBlock,直到数组填满,这意味着他们输掉了比赛
我收到的错误是
无法将“Int”类型的值转换为预期的参数类型
“@noescape(Int?)抛出->Bool”
尝试将
[Int?]
更改为[Int]
(非可选数组成员)
请注意,来自SO线程的karthik:s回答建议您切换到使用-1
,而不是将nil
作为“非赋值”。如果使用该方法,则没有理由选择smallestar
:使用[Int]
而不是[Int?]
离题:还要注意,在其当前形式中,此闭包可能最终成为一个无限循环(因此可能应该将
smallestar
传递给peaceBlocks,以便将-1
项翻转为其他值?).如果您有一个可选整数数组,那么与您上一个问题的答案相同的解决方案适用于这里。使用[Int]
数组,smallestar.contains(-1)
也可以。@MartinR您是对的,当我在操场上尝试时一定犯了一些错误(我觉得很奇怪,因为我12分钟前证实了事实并非如此!)。谢谢。@Martinar有人在我写我的答案时发布了一个答案,这是正确的(但后来被删除了?),但是,由于我错误的游乐场冒险,我认为我正在写的那本不同。是你吗?在这种情况下,我会删除这本,你可以取消删除你的。@Martiner好的。哦,那我就去睡觉了。再次感谢你的评论。
var smallestArr = [Int?](count: 25, repeatedValue: -1)
while smallestArr.contains(-1){
placeBlocks()
}
var smallestArr = [Int](count: 25, repeatedValue: -1)
while (smallestArr.contains(-1)) {
placeBlocks()
}