为什么不将所有项追加到数组中?

0 arrays struct ios swift

我在User.swift文件中有结构:

struct User {
    let name : String
    let image: UIImage
}
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我做:

for user in OneRoster.buddyList.fetchedObjects! {
    let userJID = OneRoster.userFromRosterForJID(jid: user.jidStr)
    var avatarImage: UIImage?

    let photoData = OneChat.sharedInstance.xmppvCardAvatarModule?.photoDataForJID(userJID?.jid)
    self.users = [User(name: user.displayName, image: UIImage(data: photoData!)!)
}
Run Code Online (Sandbox Code Playgroud)

所以我运行一个循环,当我打印元素(用户)时,它会打印所有用户,但是当我尝试:

self.users = [User(name: user.displayName, image: UIImage(data: photoData!)!)
Run Code Online (Sandbox Code Playgroud)

它增加了我var users = [User]()的唯一,最后一个用户并忽略了第一个.因此,当我打印时,print(users)它只打印最后一个用户.

我不明白为什么?我该如何修复它,所有用户都会附加到我的数组中?

Usa*_*ama 5

使用

self.users.append(User(name: user.displayName, image: UIImage(data: photoData!)!)
Run Code Online (Sandbox Code Playgroud)

代替

self.users = [User(name: user.displayName, image: UIImage(data: photoData!)!)
Run Code Online (Sandbox Code Playgroud)