ユーザーの配列を単一の文字列にアンパックします。NSArraysを文字列に展開する
たとえば、私のアプリではグループチャットがあり、ユーザーがグループチャットに入るたびに、そのユーザーのuidがメンバーのリストに追加されます。私は単一のグループチャットのすべてのメンバーをapp内の文字列として返したいと思います。
Iデータベースから各部屋を取得する場合、次のデータ・オブジェクトの下
class Room: NSObject {
var owner: String?
var groupChatName: String?
var groupChatDescription: String?
var members: [NSArray]?
}
であるように、各部屋にはコードで表されています。
func fetchAllRooms(){
Database.database().reference().child("rooms").observe(.childAdded, with: {(snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
let room = Room()
room.setValuesForKeys(dictionary)
self.rooms.append(room)
print(snapshot)
print(room.members?.joined())
print(self.rooms.count)
DispatchQueue.main.async(execute: {
self.collectionView?.reloadData()
})
}
print("end of snap")
}, withCancel: nil)
}
print(room.members?.joined())
は現在、アプリがクラッシュし、 'NSInvalidArgumentException'、理由スローです:
を ' - [__ NSDictionaryI objectAtIndex:]:認識されていないセレクタはインスタンス0x60800146ab80に送信された'
Iデータがどのように構造化されているか分かりますので、こちらをご覧ください。
"A632CA68-40D9-4F3A-B8C8-245457057443" : {
"groupChatDescription" : "Test Description",
"groupChatName" : "Test Name",
"members" : {
"WuqCAt4mM3h0P0X1m7hVZ7NQyLC2" : {
"username" : "Steve"
}
},
"owner" : "Steve"
},
すべての回答、提案、および/または参照は非常に高く評価されます。
値をダウンロードした後に辞書に値を追加することは可能ですか?私は通常、彼らはアプリがクラッシュすると一致しない場合は知っている。 – Stefan
辞書から、そのキーの値にアクセスできます。その値をModelクラスのプロパティの中に設定します。それは理にかなっていますか? –