Overriding [email protected] declarations from extensions is not supported
程序员文章站
2022-03-10 23:31:03
...
Swift 对方付进行重写,报 Overriding [email protected] declarations from extensions is not supported
的错误。
从错误提示上来看,重写的的这个方法在extensions中的定义没有@objc。
找到这个分类中的这个方法,添加上@objc即可。如果在父类中复写OC的方法,在自雷Swift中重写该方法的话,需要添加@objc申明。
- @objc means you want your Swift code (class, method, property, etc.) to be visible from Objective-C.
- dynamic means you want to use Objective-C dynamic dispatch.
例如这里复写propertiesToDictionary()时候报错了
class InventoryItem: NSManagedObject {
// ...
override func propertiesToDictionary() -> [String : AnyObject] {
}
}
在extension中的propertiesToDictionary()函数前加@objc关键字,就不会报上面的错误了。
import UIKit
import CoreData
extension NSManagedObject{
// ...
@objc func propertiesToDictionary()->[String: AnyObject]{
// ...
}
}
上一篇: 【Vim】Vim常用配置<二>