错误:类型为';可选<;NSMutableArray>';在Swift iOS中没有下标数组[0]

错误:类型为';可选<;NSMutableArray>';在Swift iOS中没有下标数组[0],ios,arrays,swift,dictionary,nsmutablearray,Ios,Arrays,Swift,Dictionary,Nsmutablearray,我正在从我的Objective C类中获取一些数据。以下是我的“dataArray”数据: Optional(<__NSArrayM 0x2818cff60>( { date = 1574164423; shakeState = 1; }, { date = 1574164431; shakeState = 1; } ) ) 对原问题的答复: 请阅读以下内容: 斯威夫特期权 可编码- Swift标准库中的数组 在Foundation中定义的NSMu

我正在从我的Objective C类中获取一些数据。以下是我的“dataArray”数据:

Optional(<__NSArrayM 0x2818cff60>(
{
    date = 1574164423;
    shakeState = 1;
},
{
    date = 1574164431;
    shakeState = 1;
}
)
)
对原问题的答复: 请阅读以下内容:
  • 斯威夫特期权
  • 可编码-
  • Swift标准库中的数组
  • 在Foundation中定义的NSMutableArray

我可以获取第一个索引的值,如何获取第一个索引的两个键值?字典有键值和值,但数组只有排序的值。我不太明白你的问题。你在找字典还是数组?是的,我需要数据作为模态数组或字典。原始问题中显示的对象是可变数组,而不是字典。如果您想将其作为字典,请使用您的业务逻辑将其转换为字典。适当地编辑问题以反映您的需求。谢谢您的回答,我还有一个疑问。请看我编辑的问题。我的问题是如何在shakeInfoDetails模式数组中添加'responsest'值?
error: <EXPR>:3:1: error: value of type 'Optional<NSMutableArray>' has no subscripts
dataArray[0]
do {
     let data = try JSONSerialization.data(withJSONObject: dataArray!)
     let responseStr = String(data: data, encoding: .utf8)!

     print(responseStr)//[{"date":"1574164424","shakeState":1},{"date":"1574164430","shakeState":1}]

     var shakeInfoDetails = [ShakeInfo]()

     //how to add 'responseStr' value in the shakeInfoDetails Modal Array

     } catch {

      print("JSON serialization failed: ", error)
     }
let data = #"[{"date":"1574164424","shakeState":1},{"date":"1574164430","shakeState":1}]"#.data(using: .utf8)!

//Model

struct ModelRecord : Codable {

    var date : String
    var shakeState : Int
}

class Model {

    var date : Date
    var shakeState : Int

    init?(record: ModelRecord) {

        guard let secondsFrom1970 = Double(record.date) else {
            return nil
        }

        date = Date(timeIntervalSince1970: secondsFrom1970)
        shakeState = record.shakeState
    }
}

//Decoding

let decoder = JSONDecoder()

do {
    let records = try decoder.decode([ModelRecord].self, from: data)

    let models = records.compactMap { Model(record: $0) }

}
catch {
    print("Decoding Error: \(error)")
}
let a1 : NSMutableArray? = NSMutableArray(array: ["A", "B", "C"])

a1?.object(at: 2)