测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | Dec 2017 |
SwiftSwift 版本 | 3.1 |
SPM支持 SPM | ✗ |
依赖项 | |
RealmSwift | ~> 3.0 |
ObjectMapper | ~> 2.2 |
嵌入式框架需要最低部署目标为iOS 8
规则
primaryKey
的对象必须是 StaticMappable (i)primaryKey
的对象应该是 Mappable (ii)import RealmSwift
import ObjectMapper
import RealmMapper
final class User: Object, StaticMappable {
dynamic var id: String!
dynamic var name: String?
dynamic var address: Address?
let dogs = List<Dog>()
override class func primaryKey() -> String? {
return "id"
}
func mapping(map: Map) {
name <- map["name"]
address <- map["address"]
dogs <- map["dogs"]
}
static func objectForMapping(map: Map) -> BaseMappable? {
do {
let realm = try Realm()
return realm.object(ofType: self, forMapping: map)
} catch {
return nil
}
}
}
// (ii)
final class Address: Object, Mappable {
dynamic var street = ""
dynamic var city = ""
dynamic var country = ""
dynamic var phone: Phone?
let users = LinkingObjects(fromType: User.self, property: "address")
convenience required init?(map: Map) {
self.init()
}
func mapping(map: Map) {
street <- map["street"]
city <- map["city"]
country <- map["country"]
phone <- map["phone"]
}
}
do {
let realm = try Realm()
try realm.write {
realm.map(User.self, json: jsUser) // map JSON object
realm.map(Shop.self, json: jsShops) // map JSON array
}
} catch {
}
null 值将被跳过,如果您想设置
null
,请使用NSNull()
代替