Функция, объявленная с параметром типа Dictionary показывает другой тип параметра

У меня проблема, и я не могу найти решение, у меня есть расширение объекта Article, который имеет функцию, которая создает объект с данными, содержащимися в словаре, передаваемом в качестве параметра функции, это код:

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")

        }

    }

  }

}

Итак, в другом классе я вызываю функцию, передавая словарь в качестве параметра, но когда я пишу Article.createEntityWithDictionaryавтозаполнение имени метода, но тип параметра Article вместо Dictionaryи если я передаю словарь в качестве параметра, XCode говорит: "NSDictionary не является подтипом" Article "".

Что мне здесь не хватает?

1 ответ

Решение

Хорошо, я наконец нашел, в чем была проблема. Дело в том, что я пытался получить доступ к Article как к классу, а не как к объекту, поэтому он не мог получить доступ к этому методу. Я решил это, изменив линию

Article.createEntityWithDictionary(dictionary)

с:

ArticleManager.instance.createArticle().fillEntityWithDictionary(dictionary)

Делая это, когда мы обращаемся к методу fillEntityWithDictionary (который был методом createEntityWithDicitonary) перед его выполнением, я создаю объект Article в ArticleManager, который представляет собой синглтон, который управляет всеми действиями, относящимися к объектам типа Article. После того, как у вас есть действительный объект, нет проблем с выполнением fillEntityWithDictionary.

Другие вопросы по тегам