Objective c 通过索引访问NSMutableDictionary中的对象
要按顺序(在tableview中)显示NSMutableDictionary中的键/值,我需要按索引访问它们。如果通过索引访问可以给出该索引处的键,那么我就可以得到该值。有没有一种方法可以做到这一点或其他技术?您可以使用字典的Objective c 通过索引访问NSMutableDictionary中的对象,objective-c,iphone,cocoa-touch,xcode,Objective C,Iphone,Cocoa Touch,Xcode,要按顺序(在tableview中)显示NSMutableDictionary中的键/值,我需要按索引访问它们。如果通过索引访问可以给出该索引处的键,那么我就可以得到该值。有没有一种方法可以做到这一点或其他技术?您可以使用字典的allKeys方法获得所有键的数组;然后可以通过索引访问数组。但是,字典本身没有固有的顺序,因此在更改字典之前和之后获得的键的顺序可能完全不同您可以使用allKeys方法获得包含对象键的NSArray。然后,您可以通过索引查看它。请注意,键在数组中的显示顺序未知。例如: N
allKeys
方法获得所有键的数组;然后可以通过索引访问数组。但是,字典本身没有固有的顺序,因此在更改字典之前和之后获得的键的顺序可能完全不同您可以使用allKeys方法获得包含对象键的NSArray。然后,您可以通过索引查看它。请注意,键在数组中的显示顺序未知。例如:
NSMutableDictionary *dict;
/* Create the dictionary. */
NSArray *keys = [dict allKeys];
id aKey = [keys objectAtIndex:0];
id anObject = [dict objectForKey:aKey];
编辑:事实上,如果我了解您想要做什么,那么使用快速枚举可以轻松完成,例如:
NSMutableDictionary *dict;
/* Put stuff in dictionary. */
for (id key in dict) {
id anObject = [dict objectForKey:key];
/* Do something with anObject. */
}
编辑:修正了Marco指出的打字错误。当执行下列操作时:NSMutableDictionary*tmpDict=[[NSMutableDictionary alloc]init];[tmpDict设置对象:@“CN-GSM”forKey:@“提供商:”;[tmpDict setObject:@“10010”forKey:@“Number:”;[tmpDict setObject:@“是”forKey:@“自由:”;NSLog(@“%@,[tmpdict allkey]);[tmpDict发布];为什么输出不按我添加到tmpDict的值排序?在表格视图中的“CellForRowatineXpath”中,可以是:
NSArray*keys=[colors allKeys];NSString*key=[keys-objectAtIndex:indexath.row];cell=[tv dequeueReusableCellWithIdentifier:@“CellColor”forIndexPath:indexPath];cell.textlab.text=[colors objectForKey:key];cell.backgroundColor=[self colorFromHexString:key]代码>