繁体   English   中英

Swift类“未实现(objc)协议”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM