gpt4 book ai didi

swift - 可选 NSArray - Anyobject 没有下标成员

转载 作者:行者123 更新时间:2023-11-30 12:56:26 24 4
gpt4 key购买 nike

我正在尝试打印从在线数据库返回的可选 NSArray 中的第一个对象。什么也没有打印出来。不知道如何将可选的 NSArray 解包到我可以索引的数组中。现在只尝试打印 NSArray 中的第一个值。

fireBaseRef.observeSingleEventOfType(.Value, withBlock: { snapshot in

if !snapshot.exists() { return }

for item in snapshot.children {
print("This is the child value of reference", item.value["reference"])

if let referenceObjects = item.value["reference"] {
print("This is the first value", referenceObjects[0]) //error is Anyobject? has no subscript members
}

}

})

我收到以下内容

This is the child value of track-titles Optional(<__NSArrayM0x618000049000>(
The Chainsmokers - Don't Let Me Down (Illenium Remix),
Flume - Say It ft. Tove Lo (Illenium Remix),
The Chainsmokers Ft. Halsey - Closer (GhostDragon Remix),
Major Lazer & Showtek - Believer,
Fire,
ONE DANCE -- DRAKE (feat. Wizkid & Kyla),
Let Me Love You - Justin Bieber (Trap Edit)
)
)

最佳答案

根据您的代码,referenceObjects是一个NSDictionary,而不是一个NSArray。因此,当您请求referenceObjects[0]时,运行时将尝试检索键0的值。

如果你想检索 NSArray,那么类似下面的代码应该可以工作:

if let referenceObjects = item.value["reference"] as? NSArray where !referenceObjects.isEmpty {
print("This is the first object: \(referenceObjects.first!)")
}

希望有帮助。

关于swift - 可选 NSArray - Anyobject 没有下标成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40347335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com