У меня возникли проблемы с подклассом Swift NSManagedObject
, соответствующим протоколу Objective-C.Swift class "не реализует (objc) протокол"
Я создал протокол модели для того, чтобы абстрагироваться несколько мои модели ядра данных из других компонентов в моем приложении, которые не имеют никакого бизнеса, зная эти вещи являются основными данными управляемыми объектов ...
Так у меня есть протокол следующим образом:
@protocol UserProtocol <NSObject>
@property (nonatomic) NSSet *friends;
@end
И мой управляемый объект подкласс Свифт:
class User: NSManagedObject, UserProtocol {
@NSManaged var friends: Set<User>
}
К сожалению, мне говорят User
не соответствует UserProtocol
. Я не могу найти способ увидеть быструю интерпретацию моего протокола Objective-C, есть ли способ сделать это? Если я вижу, что я мог бы понять, почему мой быстрый класс не соответствует протоколу.
Возможно, вам нужны геттеры и сеттеры? Кроме того, 'var Set' не эквивалентен' NSMutableSet'? – Mundi
'@ NSManaged' требует' var'. У вас есть точка, хотя, может быть, Set разрешает NSMutableSet. Итак, не существует способа получить представление Swift на фрагменте кода Objective-C? – Daniel
Какая версия Xcode вы используете? В Swift 1.2 (Xcode 6.3.2) 'NSSet' сопоставляется с' Set ', поэтому вам нужно определить свойство как' @NSManaged var friends: Установить 'для удовлетворения протокола. –