如何创建数据模型

时间:2015-11-27 16:11:16

标签: ios swift

我最近开始使用swift进行编程,目前正在创建一个应用程序,它从服务器接收json数据。我想知道创建数据模型的最佳方法。首先我尝试创建一个类并if let所有属性,但我发现它太麻烦了(我有10-12个proeprties的对象):

class Favourite {

    var mArtikelText: String = ""
    var mRid: String = ""

    init(object: [String: AnyObject]) throws {
        if let text = object["text"] as? String {
            self.mArtikelText = text
        }
        if let id = object["id"] as? String {
            self.mRid = id
        }
    }
}

然后我阅读了有关新guard关键字的信息并决定尝试使用它:

enum JSONResponseError: ErrorType {
    case NilResponseValue
}

class Favourite {

    var mArtikelText: String
    var mRid: String

    init(object: [String: AnyObject]) throws {
        guard let text = object["text"] as? String else {
            self.mArtikelText = ""
            throw JSONResponseError.NilResponseValue
        }
        guard let rid = object["id"] as? String else {
            self.mRid = ""
            throw JSONResponseError
        }
        self.mArtikelText = text
        self.mRid = rid
    }
}

但我得All stored properties of a class instance must be initialized before throwing from an initializer。我想如果我初始化属性,当我在第一个例子中声明它时,我可以使错误无效,但是(如果我错了,请纠正我)我认为guard用于避免正是这种方法。

然后我立刻尝试了guarding所有属性:

class Favourite {

    var mArtikelText: String 
    var mRid: String

    init(object: [String: AnyObject]) throws {

        guard case let (text as String, rid as String) = (object["text"], object["id"]) else {
            self.mArtikelText = ""
            self.mRid = ""
            throw JSONResponseError.NilResponseValue
        }
        self.mArtikelText = text
        self.mRid = rid
    }
}

但是我不喜欢这种方法,因为我只想留下错误的价值并与其他人一起工作(有时我会收到nil值,但我还是不会使用,所以没有必要抛弃整个答案)。

所以,我的问题是,从json字典创建可靠模型类的最佳方法是什么?

0 个答案:

没有答案