目前,我有一個帶有值的字典,其中一些是物件,字典中的值如下
["otherUserId": id,
"otherUser": {
email = "[email protected]";
name = zakmint;
profileImageURL = "url";
},
"lastMessage": {
fromId = id;
hasReadMessage = 0;
text = What;
timestamp = 1635800286;
toId = id;
type = TEXT;
},
"timeStamp": 1635800286]
我如何訪問 hasReadMessage 的值,我目前正在像這樣抓取字典,然后嘗試訪問它上面的值。但它具有 Any 型別,我不確定如何在不導致編譯錯誤的情況下訪問該值。
if let childSnapshot = child as? DataSnapshot {
guard let dictionary = childSnapshot.value as? [String: Any] else { return }
print(dictionary)
let lastMessage = dictionary["lastMessage"]
let value = lastMessage.hasReadMessage
uj5u.com熱心網友回復:
您不能將字典視為結構。鍵不是可以通過點表示法訪問其值的屬性。
您必須使用密鑰訂閱并有條件地將每個中間值向下轉換為其正確的型別
guard let childSnapshot = child as? DataSnapshot,
let dictionary = childSnapshot.value as? [String:Any],
let lastMessage = dictionary["lastMessage"] as? [String:Any],
let hasReadMessage = lastMessage["hasReadMessage"] as? Bool else { return }
print(hasReadMessage)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/345140.html
