NSMutableArray使用值和键添加对象

时间:2015-06-08 07:46:16

标签: objective-c iphone nsmutablearray nsmutabledictionary

我发现了一些像这样的代码:

for (int i = 0 ; i < pinyin_array.count; i++) {
    [pinyins_arr addObject:@{k_PINYIN : pinyin_array[i]}];
}

其中pinyins_arr是NSMutableArray,Kk_PINYIN是NSString。我不确定这是否正确。我认为添加键和值对的对象应该是NSMutableDictionary。如果这是真的,相同的键将用于多个值,最终的数组是什么?

3 个答案:

答案 0 :(得分:2)

@{}语法是创建NSDictionary的简写。第二行可以重写为:

[pinyins_arr addObject:[NSDictionary dictionaryWithObject:pinyin_array[i]] forKey:k_PINYIN]

您正在向NSDictionary添加NSMutableArray个对象,因此您将拥有一系列具有相同密钥的词典。这是正确的,如果这是你想要的。

答案 1 :(得分:2)

说出它是否正确不是黑白色。

这是正确的,因为存储一系列这样的词典是合法的。

它不正确,因为根本不需要使用字典数组,因为字典键没有变化;你也可以只存储一组值,这就是tabris.ui无论如何。

答案 2 :(得分:0)

试试这个逻辑

NSObject *collectionIndexString = indexPath;
NSMutableDictionary *tempDict = [myNSMutableArray[row] mutableCopy];
tempDict[@"collectionIndex"] = collectionIndexString;// Setting Key and Value
[myNSMutableArray replaceObjectAtIndex:row withObject:tempDict];