【发布时间】:2015-11-19 07:52:43
【问题描述】:
我在 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 = [....]assigns 一个数组给 users 属性,那么你期待什么呢?您没有在代码中的任何位置追加到数组。 -
因为你没有追加项目。
-
我投票决定将此问题作为离题结束,因为通过查看自己的代码可以轻松回答。
-
顺便说一句。这不可能是您的真实代码,因为
self.users = [ ...行中没有右方括号。 -
这个问题是有效的。他可能对 swift 数组语法感到困惑。他解释了他的问题并得到了有效的答案。无需关闭任何东西