RealmSwift 与 Alamofire5

Posted

技术标签:

【中文标题】RealmSwift 与 Alamofire5【英文标题】:RealmSwift with Alamofire5 【发布时间】:2018-08-24 03:53:32 【问题描述】:

我尝试将 RealmSwift 与 alamofire5 和 Codable 一起使用。我按照这个指南写了一个network layer。

实际上它完美无缺,直到尝试配置 Realm。 我检查了这个question 并找到了这个gist。不幸的是,它并没有解决我的问题。

我也试过这个tutorial,但我得到了错误,我猜 alamofire5 解码器正在抱怨什么。(错误:The data couldn’t be read because it is missing.)。我试图用这个SO solution 解决错误,但它不起作用,我将所有内容恢复为无领域版本。

这是我的结构:

struct User: Codable
var account_type:Int? = -1
var gender:String? = ""
var age:Int? = 0
var password:String? = ""
var name:String? = ""
var email:String? = ""
var image_path:String? = ""
var access_token:String? = ""
var refresh_token:String? = ""
var device_id:String? = ""
var card_number:Int? = 0
var id_token:String? = ""
var status:Int? = STATUS_DESCRIPTION.BAD_REQUEST.rawValue
var msg: String? = ""

init(account_type:Int, device_id:String, token:String) 
    self.account_type = account_type
    self.device_id = device_id
    self.id_token = token

init(email:String, name:String, password:String, device_id:String, account_type:Int)
    self.password = password
    self.name = name
    self.email = email
    self.account_type = account_type
    self.device_id = device_id

init(email:String, password: String, device_id:String, account_type:Int) 
    self.account_type = account_type
    self.device_id = device_id
    self.email = email
    self.password = password


感谢您的阅读,任何帮助将不胜感激:)

【问题讨论】:

【参考方案1】:

您不应该在每个参数前面分配值并像这样使它们成为可选的。 模型需要

init()




init(from decoder: Decoder) throws


按照link中的描述编写您的模型

【讨论】:

以上是关于RealmSwift 与 Alamofire5的主要内容,如果未能解决你的问题,请参考以下文章

RealmSwift LinkingObjects和Decodable

RealmSwift:没有这样的模块“RealmSwift”

詹金斯 |可可足类 |斯威夫特 |错误:没有这样的模块“RealmSwift”

RealmSwift 限制和获取最后 30 条记录到 tableview

RealmSwift:将结果转换为 Swift 数组

使用 Cocoa pod 设置 RealmSwift