Ios 为什么可以';我用这种方式在我的[(String,[ProtocolType])中插入一个(String,[ProtocolConformer])元组吗?

Ios 为什么可以';我用这种方式在我的[(String,[ProtocolType])中插入一个(String,[ProtocolConformer])元组吗?,ios,swift,tuples,xcode6.1,forced-unwrapping,Ios,Swift,Tuples,Xcode6.1,Forced Unwrapping,我在操场上浓缩了我的问题场景: @objc protocol Prot {} class Cla : Prot {} var myArray: [ (aString: String, prot: [Prot] ) ] = [] var myProts: [Prot]? = [Cla()] // error: type 'T' does not conform to protocol 'IntegerLiteralConvertible' myArray.append(aString: "my

我在操场上浓缩了我的问题场景:

@objc protocol Prot {}
class Cla : Prot {}

var myArray: [ (aString: String, prot: [Prot] ) ] = []
var myProts: [Prot]? = [Cla()]

// error: type 'T' does not conform to protocol 'IntegerLiteralConvertible'
myArray.append(aString: "myname", prot: myProts!)

// works
myArray.append(aString: "myname", prot: myProts! as [Prot])

// works
if let myProts: [Prot] = myProts {
    myArray.append(aString: "myname", prot: myProts)
}
为什么这里不接受强制展开


Xcode 6.1.1

只是编译器弄糊涂了-试试这个:

let tuple = (aString: "myname", prot: myProts!)
myArray.append(tuple)
出于某种原因,在某些情况下,它在传递给函数/方法时无法检测元组。而且,正如经常发生的那样,错误消息没有多大帮助