Swift问题中的JSONModel

vbu*_*vic 5 iphone json ios jsonmodel swift

我试图使用JSONModel将json映射到Swift中的模型.

如果模型没有属于JSONModel子类的属性,则一切正常.

所以在示例中这是有效的,并且它成功映射了属性:

class Person: JSONModel {

    var name: NSString?
    var gender: NSString?

}
Run Code Online (Sandbox Code Playgroud)

但是,如果我将JSONModel子类设置为City,则此属性未初始化,并且当我稍后尝试访问city属性时它会崩溃应用程序(我可以成功访问person.name和person.gender,但是在person.city上它崩溃了任何信息):

class Person: JSONModel {

    var name: NSString?
    var gender: NSString?
    var city: City? // City is JSONModel subclass
}
Run Code Online (Sandbox Code Playgroud)

如果它是JSONModel子类,看起来JSONModel不能映射/解析属性.有没有人经历过这个并解决了它?

Ger*_*osz 7

JSONModel 在Swift中不起作用,这就是你遇到问题的原因.来自JSONModel自述文件:

注意:Swift的工作方式与Objective-C不同. 因此我找不到在Swift中重新创建JSONModel的方法.Objective-C中的JSONModel通过CocoaPods或作为导入的Objective-C库在Swift应用程序中运行.

您可能能够在某些边缘情况下使用它 - 但唯一可靠的方法是使用它,通过编写Objective C代码并使用这些Objective C类.如果你想做纯Swift,你应该看看其他库,比如Argo和其他一些库.


rob*_*ble 0

也许将访问级别设置为“公共”可能会有所帮助?

public class Person: JSONModel {
    public var name: NSString?
    public var gender: NSString?
    public var city: City? // City is JSONModel subclass
}

public class City: JSONModel {
    public var name: NSString?
}
Run Code Online (Sandbox Code Playgroud)