web-dev-qa-db-ja.com

レルムの使用方法Swift Init

Swiftのレルムのinitを使用しようとしています。私は以下を試しました

override init(value: AnyObject) { 
    super.init() 
    println("this is not called") 
} 

required init() { 
    super.init() 
    println("this is called") 
}

オブジェクトを初期化子に渡せるようにしたいのですが、最初に呼び出される関数を取得できません。

15
leech

Object.init()Object.init(_:)のオーバーライドは、Realm Swiftではまだサポートされていませんが、フォローすることができます https://github.com/realm/realm-cocoa/issues/1849 更新用!

5
segiddins

Swift 3での私の解決策

カスタム初期化子:

class Branches: Object {

    dynamic var key: String = NSUUID().uuidString
    dynamic var formattedAddress: String = ""
    dynamic var latitude: Double = 0.0
    dynamic var longitude: Double = 0.0


 convenience init(formattedAddress: String, latitude: Double, longitude: Double) {
    self.init()
    self.formattedAddress = formattedAddress
    self.latitude = latitude
    self.longitude = longitude
 }

 override static func primaryKey() -> String? {
    return "key"
  }
}
24
Zhanserik