Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么不是所有项都附加到数组中?_Ios_Arrays_Swift_Struct - Fatal编程技术网

Ios 为什么不是所有项都附加到数组中?

Ios 为什么不是所有项都附加到数组中?,ios,arrays,swift,struct,Ios,Arrays,Swift,Struct,我在User.swift文件中有结构: struct User { let name : String let image: UIImage } 在我的控制器中,我执行以下操作: for user in OneRoster.buddyList.fetchedObjects! { let userJID = OneRoster.userFromRosterForJID(jid: user.jidStr) var avatarImage: UIImage?

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

struct User {
    let name : String
    let image: UIImage
}
在我的控制器中,我执行以下操作:

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!)!)
}
因此,我运行一个循环,当我打印元素(用户)时,它会打印所有用户,但当我尝试:

self.users = [User(name: user.displayName, image: UIImage(data: photoData!)!)
它只将最后一个用户添加到我的
var users=[User]()
中,而忽略第一个用户。因此,当我打印
print(users)
时,它只打印最后一个用户

我不明白为什么?如何修复所有用户将附加到我的数组中的问题?

使用

self.users.append(User(name: user.displayName, image: UIImage(data: photoData!)!)
而不是

self.users = [User(name: user.displayName, image: UIImage(data: photoData!)!)
使用

而不是

self.users = [User(name: user.displayName, image: UIImage(data: photoData!)!)

您在周期内每次修改
用户
数组,因此它会被重写,请更改此行:

self.users = [User(name: user.displayName, image: UIImage(data: photoData!)!)

如果没有阵列,请将其添加到顶部:

self.users = [User]()

您在周期内每次修改
用户
数组,因此它会被重写,请更改此行:

self.users = [User(name: user.displayName, image: UIImage(data: photoData!)!)

如果没有阵列,请将其添加到顶部:

self.users = [User]()

self.users=[…]
为users属性分配一个数组,那么您希望得到什么呢?您没有在代码中的任何位置附加到数组中。因为您没有附加项。我投票将此问题作为离题问题结束,因为它可以通过查看自己的代码来回答。顺便说一句。这不是您的真实代码,因为
self.users=[…
行中没有结束方括号。这个问题是有效的。他可能会对swift数组语法感到困惑。他解释了他的问题并得到了有效的答案。无需关闭任何
self.users=[…]
为users属性分配一个数组,那么您希望得到什么呢?您没有在代码中的任何位置追加数组。因为您没有追加项目。我投票将此问题作为离题题题结束,因为它可以通过查看自己的代码来回答。顺便说一句。这不是您的真实代码,因为没有结束方括号ket在
self.users=[…
行中。这个问题是有效的。他可能会对swift数组语法感到困惑。他解释了他的问题并得到了有效的答案。不需要关闭任何东西