【发布时间】:2020-11-22 23:20:54
【问题描述】:
我试图通过在我的 Xcode 项目中使用来自 NSDictionary 的值本身来获取值的键。我正在使用以下字典:
_itemDictionary = @{
@"Electronics" : @[@"DVD player", @"Laptop", @"PC", @"PS4", @"Radio", @"Speaker", @"TV"],
@"Clothing" : @[@"Air jordan", @"Bracelet", @"Fila", @"Jeans", @"T-shirt", @"Todds", @"Tag Heuer"],
@"Cleaning products" : @[@"Ajax", @"Ariel", @"Bounty", @"Clorox", @"Dettol", @"Tide", @"Vileda"],
@"Baby products" : @[@"Baby bottle", @"Baby milk", @"Johnson's wipes", @"Pampers"]
};
我正在尝试获取位于表格视图单元格上的值的键,如下所示:
NSString *name = self.itemNames[indexPath.row];
cell.textLabel.text = name;
//get all keys for current item
NSArray *keys = [_itemDictionary allKeysForObject:name];
NSLog(@"%lu", (unsigned long)keys.count);
所以我意识到,无论项目名称是什么,我使用的键 NSarray 的计数始终为 0。
在此处发布此问题之前,我尝试查看建议的解决方案,但没有一个对我有帮助,这就是我发布它的原因。如果有人愿意帮忙,那将意义重大!谢谢大家。
【问题讨论】:
-
你能不能 NSLog(@"%@",name);输出是什么?
-
你实际上是在询问一个对象的键,这是一个没有键的数组。相反,你可以要求 allKeys,你会看到什么
-
@OlSen 我尝试 NSLog 名称,并获得了显示的 NSDictionary 的值。但我不知道为什么键 NSarray 的大小是 0
-
@OlSen 我什至尝试用文字字符串替换 allKeysForObject 中的名称,例如:@"PS4",但它也不起作用。
-
itemDictionary 的顶层只有数组作为对象,其中不匹配单个项目。你想搜索子数组。
标签: objective-c xcode nsarray nsdictionary