在具有Array的循环中将多个值保存到Dictionary键

时间:2015-07-23 00:46:21

标签: 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作为字符串),并且< em> object [&#34; fromUserName&#34;] 是从我的查询返回的对象(上面未显示)。

一切正常,但我的查询有时会将多个对象[&#34; fromUserName&#34;] 返回到 saveStatusId。当发生这种情况时,我实际上希望将它添加到密钥中时替换 saveStatusId 的值。

所以希望它看起来像这样

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

我知道你可以使用Arrays,但我不确定如何在目前的情况下让它工作。

所以我的问题是如何获取我的密钥( saveStatusId )来存储对象[&#34; fromUserName&#34;] 的多个值?

1 个答案:

答案 0 :(得分:1)

这样的事情可以起作用

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]中有一个数组,则附加新值,否则创建一个数组并将其放在正确的插槽中