0

这是我的示例代码,它在链接上给出了一个 nil 作为 self.init() 调用 get property 的替代方法是什么?

class channel : Object, Gloss.Decodable {
var id:String?
var channelName:String?
dynamic var links: Links? = nil
public required convenience init?(json: JSON) {
    self.init()
    self.id = "id" <~~ json
    self.channelName = "channelName" <~~ json
    self.links = "links" <~~ json
}
override static func primaryKey() -> String? {
    return "id"
}
var getLinks:Links{

    get{

        return self.links!  //Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
    }
}

class Links: Object, Gloss.Decodable {
    var href:String?
    var rel:String?
    var method:String?


    required convenience init(json: JSON) {

        self.init()
        self.href = "href" <~~ json
        self.rel = "rel" <~~ json
        self.method = "method" <~~ json

    }
}
}

我找不到解决它的方法。任何有同样问题的人,或提出一些出路。谢谢你!

将链接更新为

    var getLinks:Links?{

    get{

        guard let link = self.links else{
            return nil
        }
        return link
    }
}

这给出了一个错误:由于未捕获的异常“RLMException”而终止应用程序,原因:“属性“链接”被声明为“_TtCC6WTV_GO11ChannelList5Links”,这不是受支持的 RLMObject 属性类型。所有属性必须是原语、NSString、NSDate、NSData、NSNumber、RLMArray、RLMLinkingObjects 或 RLMObject 的子类

4

0 回答 0