我在Swift Extension中工作。我试图将数据附加到类型[[String: AnyObject]]
的数组。这是一个扩展的原因是因为我必须对很多数组进行这么多次。问题是,当我追加类型为[String: AnyObject]
的对象时,我收到错误:Dictionary'<'String, AnyObject'>' Not Convertible to T
(引号在那里,因为在胡萝卜中没有出现任何内容)。
mutating func appendData(data: [String: [String: AnyObject]]?) {
if data != nil {
for (id, object) in data! {
var mutatingObject = object
mutatingObject["id"] = id
append(mutatingObject)
}
}
}
答案 0 :(得分:1)
我不确定你到底想要达到的目标。但请注意 - 数组是存储特定类型的通用集合。 Extension for Array可能不知道在每种情况下将使用什么类型,因此它不能简单地允许您存储Dictionary<String, AnyObject>
。
以下是有关如何使代码更通用的示例:
extension Array {
mutating func appendData(data: [String: T]?) {
if data != nil {
for (id, object) in data! {
if var mutatingObject = object as? [String : AnyObject] {
mutatingObject["id"] = id
}
append(object)
}
}
}
}