Отображение вложенного объекта JSON Realm в swift - PullRequest
0 голосов
/ 08 ноября 2018

Я использую Realm и Alamofire для получения и хранения моих данных, но у меня есть один объект, который является вложенным объектом JSON. Я пытаюсь получить доступ к адресу, но получаю ноль. Я могу получить данные содержимого, но не могуадрес

"content": [{"id": 1, "fisrtname": "Names", "lastname": "last" "Address": {"id": 1, "city":"город", "телефон": ноль, "улица": "город",}

class Name: Object, Mappable {
@objc dynamic var id: Int = 0
@objc dynamic var fisrtname: String? = ""
@objc dynamic var lastname: String? = ""
@objc dynamic var Address: Address? = nil
override static func primaryKey() -> String? {
    return "id"
}

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

func mapping(map: Map) {
    id <- map["id"]
    fisrtname <- map["fisrtname"]
    lastname <- map["lastname"]
    Address <- map["Address"]
}

class Address: Object {
    @objc dynamic var id: Int = 0
    @objc dynamic var city: String? = ""
    @objc dynamic var phone: Int? = ""
    @objc dynamic var street: String? = ""

    override static func primaryKey() -> String? {
        return "id"
    }

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

    func mapping(map: Map) {
        id <- map["id"]
        city <- map["city"]
        phone <- map["phone"]
        street <- map["street"]

    }
}

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Комментарий, оставленный @ TarasChernyshenko , решает проблему. Если вы пытаетесь установить отношение из вложенного отношения, убедитесь, что вы расширили Mappable, забывая об этом, это очень затрудняет отладку, так как вы не получите никаких указаний или подсказок об очевидном копировании / вставке / перемещении слишком быстро / недостаточно кофе ошибка

0 голосов
/ 08 ноября 2018

Попробуй сделать такую ​​модель

import Foundation
import RealmSwift

    class Name: Object {
        dynamic var id = 0
        dynamic var fisrtname : String?
        dynamic var lastname : String?
        dynamic var Address : UserAddress? = UserAddress()

        override static func primaryKey() -> String? {
            return "id"
        }
    }


    class UserAddress: Object {

        dynamic var id = 0
        dynamic var city : String?
        dynamic var phone : String?
        dynamic var street : String?

        override static func primaryKey() -> String? {
            return "Id"
        }
    }

И чтобы получить адрес от Json:

let responseResult = result["Result"] as! NSDictionary
let name = Name(value: responseResult)
let address = name.Address?.city
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...