Мой номер:
- Вчера я обновил структуру
Realm
от0.91.5
до0.92.0
для моего проекта (написанного в Swift). Я обнаружил, что команда Realm уже отделила частьSwift
и частьObjective-C
от предыдущей цельной Cocoa Framework, команда также изменила синтаксис. И я уже исправил свой код как последний синтаксис Realm, но у меня все еще были проблемы сinit()
.
Ошибка:
- Компилятор выкинул ошибку:
fatal error: use of unimplemented initializer init(realm:schema:) for CardModel
. - Дело в том, что эта ошибка не произошла с предыдущей версией
Realm
. - Я использовал структуру
MultiPeer Connectivity
для проекта, что означает, что мне нужноEncode
иDecode
для обмена данными. - Я попытался изменить или добавить другие
init()
вCardModel
, но это не сработало.
Мой код:
import RealmSwift
class CardModel: Object {
dynamic var cardID: String = ""
dynamic var firstName: String = ""
dynamic var lastName: String = ""
dynamic var userImage = NSData()
dynamic var status: String = ""
dynamic var cardType: Int = 1
dynamic var cardDate = NSDate()
override init() {
super.init()
}
init(coder aDecoder: NSCoder) {
super.init()
self.userImage = aDecoder.decodeObjectForKey("userImage") as! NSData
self.cardID = aDecoder.decodeObjectForKey("cardID") as! String
self.firstName = aDecoder.decodeObjectForKey("firstName") as! String
self.lastName = aDecoder.decodeObjectForKey("lastName") as! String
self.status = aDecoder.decodeObjectForKey("status") as! String
self.cardType = aDecoder.decodeObjectForKey("cardType") as! Int
self.cardDate = aDecoder.decodeObjectForKey("cardDate") as! NSDate
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(self.userImage, forKey: "userImage")
aCoder.encodeObject(self.cardID, forKey: "cardID")
aCoder.encodeObject(self.firstName, forKey: "firstName")
aCoder.encodeObject(self.lastName, forKey: "lastName")
aCoder.encodeObject(self.status, forKey: "status")
aCoder.encodeObject(self.cardType, forKey: "cardType")
aCoder.encodeObject(self.cardDate, forKey: "cardDate")
}
}
Пожалуйста, научите меня, как решить эту проблему.
Большая оценка вашего гида и времени.
Этан Джо