私は次のような設定をしています:
@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 で「タイプ 'Model' はプロトコル 'Syncable' に準拠していません」というエラーが表示され続けます。Xcode はまた、拡張機能のどこかに を配置することを提案し続けますが、@objc
どこに行けばよいのかわかりません。
私がしていることは不可能ですか?(遊び場での単純な条件下で動作するようですが、私のObjective-Cクラスは明らかにSwiftで書かれています)。
それが不可能な場合は、その理由を理解するのに役立ちます。