• Stars
    star
    178
  • Rank 214,989 (Top 5 %)
  • Language
    Swift
  • License
    Other
  • Created about 8 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An ObjectMapper extension that serializes arbitrary JSON into Realm's List class

ObjectMapper+Realm

Version Build Status codecov Platform License

Installation Carthage compatible

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.

Usage

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! 🎬

Author

Jake Peterson

License

ObjectMapper+Realm is available under the MIT license. See the LICENSE file for more info.