Moh*_*wke 1 arrays dictionary objective-c data-structures
我对Objective-C很新,并且没有很多C经验,所以请原谅我的无知.我的问题是,是否可以在字典中添加数组?这是我在Python中所做的,而且非常方便:
if 'mykey' not in mydictionary:
mydictionary['mykey']=[] # init an empty list for 'mykey'
mydictionary['mykey'].append('someitem')
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西,它有效:
NSMutableDictionary *matchDict = [NSMutableDictionary dictionary];
NSMutableArray *matchArray = [NSMutableArray array];
while (blah):
[matchDict setObject: [matchArray addObject: myItem] forKey: myKey];
Run Code Online (Sandbox Code Playgroud)
我到处都没有运气,只是放弃了.任何反馈将不胜感激!
它与你在python中所做的并没有什么不同.
NSMutableDictionary *matchDict = ...
NSMutableArray *matchArray = ...
[matchDict setObject:matchArray forKey:someKey];
// This is same as: mydictionary['mykey']=[]
// 'matchArray' is still a valid pointer so..
[matchArray addObject:someObj];
// or later if 'matchArray' were no longer in scope
// it would look like this:
NSMutableArray* arrayForKey = [matchDict objectForKey:someKey];
[arrayForKey addObject:someObj];
// or more simply:
[[matchDict objectForKey:someKey] addObject:someObj];
// this is same as: mydictionary['mykey'].append('someitem')
Run Code Online (Sandbox Code Playgroud)
编辑
因此,如果您需要为多个密钥添加数组,则可以执行以下操作:
给定一组两个键:
NSArray *keys = [NSArray arrayWithObjects:@"key0",@"key1", nil];
Run Code Online (Sandbox Code Playgroud)
还有一本字典......
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:[keys count]];
Run Code Online (Sandbox Code Playgroud)
以下是为每个键创建数组的方法:
for (id key in keys) {
// Create a new array each time...
NSMutableArray *array = [NSMutableArray array];
// and insert into dictionary as value for this key
[dict setObject:array forKey:key];
}
Run Code Online (Sandbox Code Playgroud)
希望这会给你一个想法.
| 归档时间: |
|
| 查看次数: |
14186 次 |
| 最近记录: |