NSMutableArray addObject 使用值和键
NSMutableArray addObject using value and key
我找到了一些这样的代码:
for (int i = 0 ; i < pinyin_array.count; i++) {
[pinyins_arr addObject:@{k_PINYIN : pinyin_array[i]}];
}
其中 pinyins_arr 是 NSMutableArray
,Kk_PINYIN 是 NSString
。我不确定这是否正确。我觉得应该是 NSMutableDictionary
添加键值对的对象。如果这是真的,同一个键将用于多个值,最后的数组是什么样的?
@{}
语法是 shorthand 用于创建 NSDictionary
。第二行可以详细地重写为:
[pinyins_arr addObject:[NSDictionary dictionaryWithObject:pinyin_array[i]] forKey:k_PINYIN]
您正在向 NSMutableArray
添加 NSDictionary
个对象,因此您将拥有一组具有相同键的字典。没错,如果这是你想要的。
说得对不对也不是非黑即白的
正确的是,像这样存储字典数组是合法的。
这是不正确的,因为根本不需要使用字典数组,因为字典键没有变化;您也可以只存储一个值数组,这就是 pinyin_array
无论如何。
试试这个逻辑
NSObject *collectionIndexString = indexPath;
NSMutableDictionary *tempDict = [myNSMutableArray[row] mutableCopy];
tempDict[@"collectionIndex"] = collectionIndexString;// Setting Key and Value
[myNSMutableArray replaceObjectAtIndex:row withObject:tempDict];
我找到了一些这样的代码:
for (int i = 0 ; i < pinyin_array.count; i++) {
[pinyins_arr addObject:@{k_PINYIN : pinyin_array[i]}];
}
其中 pinyins_arr 是 NSMutableArray
,Kk_PINYIN 是 NSString
。我不确定这是否正确。我觉得应该是 NSMutableDictionary
添加键值对的对象。如果这是真的,同一个键将用于多个值,最后的数组是什么样的?
@{}
语法是 shorthand 用于创建 NSDictionary
。第二行可以详细地重写为:
[pinyins_arr addObject:[NSDictionary dictionaryWithObject:pinyin_array[i]] forKey:k_PINYIN]
您正在向 NSMutableArray
添加 NSDictionary
个对象,因此您将拥有一组具有相同键的字典。没错,如果这是你想要的。
说得对不对也不是非黑即白的
正确的是,像这样存储字典数组是合法的。
这是不正确的,因为根本不需要使用字典数组,因为字典键没有变化;您也可以只存储一个值数组,这就是 pinyin_array
无论如何。
试试这个逻辑
NSObject *collectionIndexString = indexPath;
NSMutableDictionary *tempDict = [myNSMutableArray[row] mutableCopy];
tempDict[@"collectionIndex"] = collectionIndexString;// Setting Key and Value
[myNSMutableArray replaceObjectAtIndex:row withObject:tempDict];