【发布时间】:2015-11-29 01:45:44
【问题描述】:
我有这样的设置:
@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 编写的)。
如果不可能,请帮助理解原因。
【问题讨论】:
标签: objective-c swift protocol-extension