我遇到了问题,我无法找到解决方案,我有一个对象Article
的扩展,它有一个func,用于创建包含在a中的数据的对象字典作为参数传递给func,这是代码:
protocol EntityProtocol {
mutating func createEntityWithDictionary(dictionary: Dictionary<String, AnyObject>)
}
extension Article: EntityProtocol {
func createEntityWithDictionary(dictionary: Dictionary<String, AnyObject>) {
var article: Article! = ModelManager.instance.insertNewEntityName("Article") as Article
for (key: String, value: AnyObject) in dictionary {
switch key {
case kContentTypeKey:
article.contentType = value as String
case kEditorsPickKey:
article.editorsPick = value as Bool
default:
println("Default")
}
}
}
}
好的,所以在另一个类中,我调用func传递字典作为参数,但是当我写Article.createEntityWithDictionary
时,它会自动填充方法的名称,但参数的类型为Article
而不是Dictionary
{{1}},如果我传递字典作为参数XCode说&#34; NSDictionary不是&#39;&#39;&#34;&#34;。
我在这里缺少什么?
答案 0 :(得分:1)
好的,我终于找到了问题所在。问题是我试图像一个类而不是像一个对象一样访问Article,所以它无法访问该方法。我解决了它改变了行
Article.createEntityWithDictionary(dictionary)
使用:
ArticleManager.instance.createArticle().fillEntityWithDictionary(dictionary)
这样做,当我们在执行它之前访问方法fillEntityWithDictionary(它是方法createEntityWithDicitonary)时,我在ArticleManager中创建一个对象Article,它是一个管理与Article类型对象相关的所有动作的单例。拥有一个有效的对象后,执行fillEntityWithDictionary没有问题。