目前,我正在试验基于RealmSwift JSON的基于领域-JSON的JSON支持,但仍然停留在initWithDictionary
上。我将扩展转移到RLMObjectBase
,自动生成的快速代码如下所示:
extension RLMObjectBase {
.....
public init!(JSONDictionary dictionary: [NSObject : AnyObject]!)
public func JSONDictionary() -> [NSObject : AnyObject]!
....
}
这在我看来是可以的。但是领域的Object
(RLMObjectBase
的子类)由于某种原因并没有继承init!(JSONDictionary dictionary: [NSObject : AnyObject]!)
。现在没有了。如有任何建议,将不胜感激。
发布于 2015-10-13 02:09:45
子类只有在不定义自己的初始化程序时才继承它的超类初始化器。
您只能在RLMObjectBase
类扩展中定义方便的初始化器:
extension RLMObjectBase {
...
convenience init!(JSONDictionary dictionary: [NSObject : AnyObject]!) { ... }
...
}
如果子类没有初始化器,它们将由子类继承:
class MyCustomRLMObject: RLMObjectBase {
// no initializers
...
}
let object = MyCustomRLMObject(JSONDictionary: d)
而且,如果仅在应用程序中使用它,则不需要将其设置为public
。
类似的例子,但适用于UIViewController
extension UIViewController {
convenience init(nibName: String) {
self.init(nibName: nibName, bundle: nil)
}
}
class MyViewController: UIViewController {
}
let vc = MyViewController(nibName: "MyViewController")
https://stackoverflow.com/questions/33099242
复制