首页 > 解决方案 > 如何在 Swift iOS 中使用 Struct Modal 类中的虚拟值创建数组

问题描述

我正在从我的服务器获取 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!)

但这不起作用。它因错误而崩溃(请参阅下面附加的错误屏幕截图)。

请给我提意见。

在此处输入图像描述

标签: iosarraysswiftdictionary

解决方案


强制解开一个值为 nil 的值syncModelRecord

声明时需要实例化它。

var syncModelRecord: SyncModelRecord? = SyncModelRecord()

或者,更好的是,不要将它声明为可选的,因为你知道它不会是nil(当然,如果实例化正确):

var syncModelRecord = SyncModelRecord()


推荐阅读