Swift 中的可空整数

Nullable Int in Swift

我正在尝试使用包含可空 int 作为值的散列。下面是代码。

var facs:[(pk:Int,phone:Int?,name:String)] = []
var phone: AnyObject? = fac["phone"]!
var phoneLong:Int?;
if(phone == nil){
    phoneLong = nil
}
else{
    phoneLong = phone as? Int
}
var id = fac["id"]! as Int
var name = fac["name"]! as String

facs.append(pk:id, phone:phoneLong, name:name)

但是,我在 facs.append 行上收到一个编译错误,指出 Type 'T' does not conform to protocol 'IntegerLiteralConvertible'。我尝试了一些变体,消除错误的唯一方法是使 phone 成为不可为 null 的 int,这不是我需要的。想法?

看起来 append 方法没有正确地将参数检测为元组 - 只需通过将元组分配给变量来使其明确:

let params = (pk:id, phone:phoneLong, name:name)
facs.append(params)