sus*_*use 9 objective-c nsmutabledictionary
请告诉我如何在NSMutableDictionary中为同一个键设置多个值?
当我使用以下方法时,值将被最近的值替换.
就我而言:
[dictionary setObject:forename forKey:[NSNumber numberWithint:code]];
[dictionary setObject:surname forKey:[NSNumber numberWithint:code]];
[dictionary setObject:reminderDate forKey:[NSNumber numberWithint:code]];
Run Code Online (Sandbox Code Playgroud)
当我查看字典的内容时,我只获得reminderDate了关键代码.这里,所有值的代码都相同.我如何避免被取代的姓氏和姓氏plannedReminder.
谢谢!
dre*_*lax 15
看起来您正在使用code键作为键,并且您想要基于表示多个值code.在这种情况下,您应该:
将所有与数据关联的数据抽象code到一个单独的类(可能称为Person)中,并将此类的实例用作字典中的值.
使用多层词典:
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
NSMutableDictionary *firstOne = [NSMutableDictionary dictionary];
[firstOne setObject:forename forKey:@"forename"];
[firstOne setObject:surname forKey:@"surname"];
[firstOne setObject:reminderDate forKey:@"reminderDate"];
[dictionary setObject:firstOne forKey:[NSNumber numberWithInt:code]];
// repeat for each entry.
Run Code Online (Sandbox Code Playgroud)小智 5
如果你真的坚持在字典中存储对象,并且如果你正在处理字符串,你总是可以用逗号分隔所有字符串,然后当你从密钥中检索对象时,你将拥有所有的准csv格式的对象!然后,您可以轻松地将该字符串解析为对象数组.
以下是您可以运行的一些示例代码:
NSString *forename = @"forename";
NSString *surname = @"surname";
NSString *reminderDate = @"10/11/2012";
NSString *code = @"code";
NSString *dummy = [[NSString alloc] init];
dummy = [dummy stringByAppendingString:forename];
dummy = [dummy stringByAppendingString:@","];
dummy = [dummy stringByAppendingString:surname];
dummy = [dummy stringByAppendingString:@","];
dummy = [dummy stringByAppendingString:reminderDate];
dummy = [dummy stringByAppendingString:@","];
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:dummy forKey:code];
Run Code Online (Sandbox Code Playgroud)
然后检索并解析字典中的对象:
NSString *fromDictionary = [dictionary objectForKey:code];
NSArray *objectArray = [fromDictionary componentsSeparatedByString:@","];
NSLog(@"object array: %@",objectArray);
Run Code Online (Sandbox Code Playgroud)
它可能不像像dreamlax建议的字典层一样干净,但如果你正在处理一个字典,你想要为一个键存储一个数组,而那个数组中的对象本身没有特定的键,这就是一个解决方案!
| 归档时间: |
|
| 查看次数: |
20020 次 |
| 最近记录: |