swift - 使用数组在循环中将多个值保存到字典键

标签 swift dictionary parse-platform

我有这段代码

//start of the loop
if let objects = objects as? [PFObject] {
    for object in objects {
        //saving the object
        self.likerNames.setObject(object["fromUserName"]!, forKey: saveStatusId!)
   }
}

likerNames 是之前声明的 NSMutableArray,saveStatusId 是我之前声明和保存的字符串(它只是一个 objectId 作为字符串),object[ “fromUserName”] 是从我的查询返回的对象(上面未显示)。

一切正常,但我的查询有时会返回多个对象["fromUserName"] 到同一个键,即saveStatusId。 当这种情况发生时当我真正希望将它添加到 key 时,我为那个 saveStatusId 设置的值被替换了。

所以希望它看起来像这样

("jKd98jDF" : {"Joe", "John"})
("ksd6fsFs" : {"Sarah"})
("payqw324" : {"Chris", "Sarah", "John"})

我知道您可以使用数组,但我不确定我将如何着手让它在我当前的情况下工作。

所以我的问题是如何让我的 key (saveStatusId) 存储多个 object["fromUserName"] 的值?

最佳答案

这样的东西可以工作

let key = saveStatusId!
let oldValue = self.likerNames.objectForKey( key ) as? [String]
let newValue = (oldValue ?? []) + [ object["fromUserName" ] ]
self.likerNames.setObject( newValue, forKey: key )

如果 likerNames 在 slot[saveStatusId] 中有一个数组,附加新值,否则创建一个数组并将其放入正确的槽中

关于swift - 使用数组在循环中将多个值保存到字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31576390/

相关文章:

swift - 为什么可选属性必须返回一些东西?

ios - 使用 Parse 时关闭 iOS 中的登录屏幕

ios - 如何使 UITextView 文本同时对齐和对齐

ios - 从 CoreData 填充的自定义 tableView,提供额外的白色单元格

c++ - boost::interprocess::map - 如何使用 basic_string 作为类型更新值

swift - 如何通过 FacebookUtil 链接现有的 Parse 用户

ios - 在导航 View Controller 登录屏幕上运行 performSegueWithIdentifier 通过两个屏幕转换

python - 如何解析具有相同键的多个字典值

list - 如何更新列表的一个元素

ios - 在 cellForRowAtIndexPath 中使用 PFQuery