我试图在swift中创建一个元组数组,其中每个元组包含一(1)个字母和(2)个自定义对象数组,但当我尝试追加时,它抛出错误“in T”不能转换为“T”。
以下是简化代码:
var tuples : [(letter : Character , objects : [myObject])] = []
//this works
tuples.append(letter:"test".firstChar(), objects: [myObject(), myObject()])
//gives error => 'Int' is not convertable to 'T' on the append function
var arrayOfObjects : [myObject] = []
tuples.append(letter:"test".firstChar(), objects: arrayOfObjects)
最佳答案
这应该有效:
let arrayOfObjects : [myObject] = []
tuples.append(letter:"t", objects: arrayOfObjects)
如你所见,
arrayOfObjects
是一个常数。这里的问题可能源于这样一个事实,即当您传递一个包含append
的元组时,T
需要一个常量参数。这使得
var
有点疯狂,编译器给出了更疯狂的错误描述;-)