我有这样的设置:
@interface Model: NSManagedObject
...
@end
还有一个像这样的 Swift 协议:
@objc protocol Syncable {
var uploadURL: String { get }
var uploadParams: [String: AnyObject]? { get }
func updateSyncState() throws
}
extension Syncable where Self: NSManagedObject {
func updateSyncState() throws {
... /* default implementation */ ...
}
}
在一个新的 Swift 文件中,我尝试这样做:
extension Model: Syncable {
var uploadURL: String {
return "a url"
}
var uploadParams: [String: AnyObject]? {
return [:]
}
}
我不断收到错误,Xcode 说“类型'模型'不符合协议'同步'”。Xcode 还一直建议我@objc
在扩展程序中放置一个位置,但它似乎无法弄清楚它应该放在哪里。
我正在做的事情是不可能的吗?(它似乎在操场上的简单条件下工作 - 但显然我的 Objective-C 类是用 Swift 编写的)。
如果不可能,请帮助理解为什么会受到赞赏。