objective-c – NSMutableDictionary将多个对象添加到一个键
发布时间:2020-12-16 05:03:45 所属栏目:百科 来源:网络整理
导读:如何在NSMutableDictionary中向同一个键添加多个对象? 我找不到合适的方法. setObject方法仅更新密钥数组中的单个对象.方法addObject:forkey:在NSMutableDictionary中不可用,并在使用时导致崩溃. 从plist文件中读取字典. 词典: temp = { nickname : scor
如何在NSMutableDictionary中向同一个键添加多个对象?
我找不到合适的方法. setObject方法仅更新密钥数组中的单个对象.方法addObject:forkey:在NSMutableDictionary中不可用,并在使用时导致崩溃. 从plist文件中读取字典. 词典: temp = { nickname : score item 0 = level1; item 1 = level2; item 3 = level3; score item 0 = 400; item 1 = 400; item 3 = 400; } 这是代码: NSMutableDictionary *newDict = [[NSMutableDictionary alloc] init]; str_nickname = [temp objectForKey:@"nickname"]; for (NSString *key in str_nickname){ if ([key isEqualToString:@"level2"]) { //replace object with new name [newDict setObject:@"new level" forKey:@"nickname"]; } else { [newDict addObject:key forKey:@"nickname"]; //wont work!!! } } 另外,我想更新新词典中的新分数,并且必须在相应的级别对象上更新,也许是通过索引? 解决方法
如果你的plist文件是这样的“test.plist”
The Dictionary temp={ nickname : Junaid Sidhu levels item 0 = level1; item 1 = level2; item 3 = level3; score item 0 = 400; item 1 = 400; item 3 = 400; } 这是代码 NSDictionary *temp = [[NSDictionary alloc]initWithContentsOfFile:[NSBundle mainBundle] pathForResource:@"test" ofType:@"plist"]]; NSMutableDictionary *newDict = [[NSMutableDictionary alloc] init]; NSString *str_nickname = [temp objectForKey:@"nickname"]; NSMutableArray *levels = [NSMutableArray new]; NSMutableArray *score = [NSMutableArray new]; for (NSString *key in [temp allKeys]){ if ( [key isEqualToString:@"levels"]) { //replace object with new name levels = [NSMutableArray arrayWithArray:(NSArray *)[temp objectForKey:key]]; } else if ( [key isEqualToString:@"score"]){ score = [NSMutableArray arrayWithArray:(NSArray *)[temp objectForKey:key]]; } } NSLog(@"Nick : %@ n levels : %@ n score : %@ n",str_nickname,levels,score) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |