An ObjectMapper extension that serializes arbitrary JSON into Realm's List class
ObjectMapper+Realm is available through CocoaPods. To install
it, simply add the following line to your Podfile:
pod "ObjectMapper+Realm"
You may also install it through Swift Package Manager.
To use ListTransform
just add it to the mapping of your RealmObject:
import ObjectMapper
import RealmSwift
import ObjectMapper_Realm
class User: Object, Mappable {
dynamic var username: NSString?
var friends: List<User>?
required convenience init?(_ map: Map) {
self.init()
}
override class func primaryKey() -> String? {
return "username"
}
func mapping(map: Map) {
username <- map["username"]
friends <- (map["friends"], ListTransform<User>())
}
}
If you need to have control over your newly serialized objects, you can use the onSerialize
callback:
class User: Object, Mappable {
func mapping(map: Map) {
username <- map["username"]
friends <- (map["friends"], ListTransform<User>(onSerialize: onSerialize))
}
private func onSerialize(users: List<User>) {
let realm = Storage.shared.realm
try! realm.write {
realm.add(users, update: .modified)
}
}
}
Have fun! 🎬
ObjectMapper+Realm is available under the MIT license. See the LICENSE file for more info.