NSManagedObject и соответствие протокола - PullRequest
0 голосов
/ 10 февраля 2019

Вот моя проблема, у меня есть тип ( MyManObj ), который является подклассом NSManagedObject.

Этот тип имеет два поля: fieldOne , fieldTwo : Int16

У меня также есть протокол, определенный следующим образом:

@objc protocol MyProtocol {
    var fieldOne:Int16 {get set}
    var fieldTwo:Int16 {get set}
}

Мне нужно выразить тот факт, что MyManObj соответствует MyProtocol .И я не знаю, как это сделать.

Я пытался добавить такой код, но он не работает:

extension MyManObj:MyProtocol {}

Точно получаю это сообщение:

Type 'MyManObj' does not conform to protocol 'MyProtocol'.

Затем я попробовал еще несколько вариантов, но без интереса, потому что они потерпели неудачу.

1 Ответ

0 голосов
/ 10 февраля 2019

Вы получаете эту ошибку, потому что переменные / свойства в вашем протоколе не помечены как необязательные [то есть они обязательны], и ваш компилятор просит вас реализовать все методы / свойства, объявленные в вашем протоколе.

Для решения этой проблемы вы можете сделать:

@objc protocol MyProtocol: class {
     optional var fieldOne:Int16 {get set}
     optional var fieldTwo:Int16 {get set}
 }

ИЛИ

extension MyManObj:MyProtocol {
    var fieldOne:Int16 {
        get{}
        set{}
    }
    var fieldTwo:Int16 {
        get{}
        set{}
    }
}
...