我试图在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有点疯狂,编译器给出了更疯狂的错误描述;-)

07-26 05:19