将 NSArray 解包为字符串 swift

Unpacking NSArrays into String swift

我想将一组用户解压缩为一个字符串。

例如,在我的应用程序中有群聊,每次用户进入群聊时,他们的 uid 都会添加到成员列表中。我想 return 单个群聊中的所有成员作为应用程序中的字符串。

每个房间在代码中表示为以下数据对象

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:]: unrecognized selector sent to instance 0x60800146ab80'

我意识到这可能是我的数据的结构,所以这里是 json

"A632CA68-40D9-4F3A-B8C8-245457057443" : {
  "groupChatDescription" : "Test Description",
  "groupChatName" : "Test Name",
  "members" : {
    "WuqCAt4mM3h0P0X1m7hVZ7NQyLC2" : {
      "username" : "Steve"
    }
  },
  "owner" : "Steve"
},

非常感谢任何答案、建议和/或参考。

您似乎在 class 上设置字典。因此,首先您需要从字典中提取值并将其设置为您的 Room 模型 class 属性。之后尝试在你的数组上调用 joined 方法然后它应该工作。