2016-06-16 6 views
1

Да, это решение, но оно не идеально подходит для следующего случая.Рефлектор управления RealmSwift

JSON from server 
{ 
    id: "4", 
    key: "web_banner", 
    data: [ 
     { 
      id: "11", 
      title: "app", 
      description: "", 
     } 
    ] 
} 

я использую ObjectMapper для отображения, так как схема JSON, я создать следующие модели

class Advertising: Object, Mappable { 

    dynamic var id    = "" 
    dynamic var key   = "" 
    private var data   = [AdvertisingData]() 
    { 
     willSet{// **i have to do this for Store it, it will be empty in realm if not do this** 
      dataList.removeAll() 
      dataList.appendContentsOf(newValue) 
     } 
    } 
    let dataList = List<AdvertisingData>() 

    convenience required init?(_ map: Map) { 
     self.init() 
    } 

    func mapping(map: Map) { 
     id <- map["id"] 
    key <- map["advertising_key"] 
    data <- map["advertising_data"] 
    } 

    override class func ignoredProperties() -> [String] { 
     return ["data"] 
    } 

} 

class AdvertisingData: Object, Mappable { 

    dynamic var id    = "" 
    dynamic var title   = "" 
    dynamic var theDescription = “” 

    convenience required init?(_ map: Map) { 
     self.init() 
    } 

    func mapping(map: Map) { 
     id <-    map["id"] 
     title <-   map["title"] 
     theDescription <- map["description"] 
    } 

} 
  1. я должен объявить данные в классе рекламы только для данных синхронизации в DataList,
  2. Я должен игнорировать данные свойства это мое решение, слишком уродливое, какая-то хорошая идея? Спасибо заранее

ответ

3

От Realm docs:

Если JSON схема не совпадает в точности с вашими объектами Realm, мы рекомендуем Вам использовать структуру отображения третьей модели сторона для того, чтобы превратить ваш JSON , Swift имеет богатый набор активно поддерживаемых каркасов моделирования моделей, которые работают с Realm, некоторые из которых перечислены в realm-cocoa repository.

Так что просто используйте один из этих фреймворков для отображения.

+0

Это решение, но не идеально подходит для случая. я изменил свой вопрос, чтобы показать случай –

+0

@ 巩小鹏, поскольку первоначальный вопрос был изменен. Предлагаю вам посмотреть на этот вопрос: http://stackoverflow.com/questions/33804181/alamofire-objectmapper-realm-nested-objects – Dmitry

+0

Спасибо, я нашел лучшее решение для меня! –

Смежные вопросы