У меня такая установка:
@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).
Если это невозможно, помощь в понимании, почему будет оценена.