【发布时间】:2020-03-16 06:07:35
【问题描述】:
我正在从我的服务器获取 JSON。为了解析 JSON,我使用解码器并转换模态类对象中的数据。
这是我的解码器模态类:
struct SyncModelRecord : Codable {
var date : String
var shakeState : Int
}
class SyncModel {
var date : Date
var shakeState : Int
init?(record: SyncModelRecord) {
guard let secondsFrom1970 = Double(record.date) else {
return nil
}
date = Date(timeIntervalSince1970: secondsFrom1970)
shakeState = record.shakeState
}
}
我的解析工作正常。
我的问题是现在我必须制作一个“SyncModelRecord”虚拟数组,例如:
var dummySyncModelRecordArray = [SyncModelRecord]()
var syncModelRecord : SyncModelRecord?
syncModelRecord?.shakeState = 0
syncModelRecord?.date = String(Int64(syncTimestamp!))
dummySyncModelRecordArray.append(syncModelRecord!)
但这不起作用。它因错误而崩溃(请参阅下面附加的错误截图)。
请给我建议。
【问题讨论】:
-
您从未初始化过syncModelRecord,因此出现了错误。这两行不抱怨 syncModelRecord?.shakeState = 0 syncModelRecord?.date = String(Int64(syncTimestamp!)) 因为您正在使用条件展开,因为 syncModelRecord 是 nil 没有任何事情发生 swift 只是忽略这两行。还要避免强制展开:)
标签: ios arrays swift dictionary