var playerOneArray : Array<(Int,Int,Int)> = []
var currentPerson = 1
var currentWeapon = 1
var currentRoom = 1
var currentPlayer = 1
currentPerson = everyPicker.selectedRowInComponent(0)
currentWeapon = everyPicker.selectedRowInComponent(1)
currentRoom = everyPicker.selectedRowInComponent(2)
currentPlayer = playerPicker.selectedRowInComponent(0)
//In an if statement
playerOneArray.append(currentRoom, currentPerson, currentWeapon) as (Int,Int,Int)
// Error tuple types () and (Int,Int,Int) have a different number of elements (0 vs. 3)
即使我去掉 as int,int,int 仍然有错误,我不知道为什么会这样。如果我把它拿走,出现的错误是访问协议(protocol)“int”的成员未实现。
最佳答案
您没有关闭 append
调用的括号。
但是,因为 swift 知道 playerOneArray 是一个包含 3 个 Int 的数组。您可以简单地将 3 个变量传递给 append 方法,如下所示:
playerOneArray.append(currentRoom, currentPerson, currentWeapon)
假设 (currentRoom, currentPerson, currentWeapon) 是 Int 值的元组。这会将 (currentRoom, currentPerson, currentWeapon) 存储到 playerOneArray[0] 中。
作为旁注,您似乎想要一组包含每个玩家详细信息的玩家。如果是这种情况,您应该将 playerOneArray
重命名为 players
并简单地添加每个玩家的信息。这样每个索引将代表玩家信息(整数元组)。
关于arrays - 使用 Swift 追加数组时出现意外错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29526577/