[英]Swift class “does not implement (objc) protocol”
我在使Swift NSManagedObject
子类符合Objective-C协议时遇到麻烦。
我创建了一个模型协议,目的是从我的应用程序中的其他组件中抽象出我的Core Data模型,这些组件没有业务知道这些东西是Core Data Managed Objects ...
所以我有一个协议如下:
@protocol UserProtocol <NSObject>
@property (nonatomic) NSSet *friends;
@end
我快速管理的对象子类是:
class User: NSManagedObject, UserProtocol {
@NSManaged var friends: Set<User>
}
不幸的是,我被告知User
不符合UserProtocol
。 我找不到一种方法来快速了解我的Objective-C协议,有没有办法做到这一点? 如果可以看到我能弄清楚为什么我的swift类与协议不匹配的原因。
在Swift 1.2(Xcode 6.3.2)中, NSSet
被映射到Set<NSObject>
,因此您必须将属性定义为
@NSManaged var friends: Set<NSObject>
满足协议。 在Swift 2中,您可以使用“轻量级泛型”定义Objective-C协议方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.