我试图按如下方式编写通用函数:
func convertItems<T>(#itemType: ItemType, rawItems: [Dictionary<String, AnyObject>]) -> [T] {
var items = [MyModel]()
// conversion code
return items
}
为什么编译器会抱怨“MyModel”与T&#39;
相同?答案 0 :(得分:0)
返回类型由convertItems
的调用方确定,因此您无法在函数体内强制它[MyModel]
。想象一下有人称T
为SomeOtherModel
;你当时无法返回[MyModel]
。
你要么想要这个:
func convertItems<T>(#itemType: ItemType, rawItems: [Dictionary<String, AnyObject>]) -> [T] {
var items = [T]()
// conversion code
return items
}
或者这个:
func convertItems(#itemType: ItemType, rawItems: [Dictionary<String, AnyObject>]) -> [MyModel] {
var items = [MyModel]()
// conversion code
return items
}
代替。