Ios 数组对象字典访问整个数组
我正在尝试访问beers数组中的每个名称以获得搜索算法。我将数组设置为字典,但它的行为与字典不太一样。以下是数据的外观: 为了让您了解我是如何访问阵列的,下面是我如何填充uitableview的。因此,基本上我知道如何访问阵列中的单个对象,但无法访问整个阵列:Ios 数组对象字典访问整个数组,ios,objective-c,arrays,search,dictionary,Ios,Objective C,Arrays,Search,Dictionary,我正在尝试访问beers数组中的每个名称以获得搜索算法。我将数组设置为字典,但它的行为与字典不太一样。以下是数据的外观: 为了让您了解我是如何访问阵列的,下面是我如何填充uitableview的。因此,基本上我知道如何访问阵列中的单个对象,但无法访问整个阵列: cell.detailTextLabel.text=[self.beers[indexPath.row] name] 那么我可能又一次完全偏离了底线。我还在这里学习objective c和ios,如果我的经验不足在我的帖子中表现出来的话
cell.detailTextLabel.text=[self.beers[indexPath.row] name]
那么我可能又一次完全偏离了底线。我还在这里学习objective c和ios,如果我的经验不足在我的帖子中表现出来的话,我很抱歉。任何提示都有帮助。谢谢大家 通过循环遍历数组,可以访问数组中的所有名称
for ( Beer *beer in self.beers )
NSLog( @"%@", beer.name );
我假设您想要一个新数组,它只包含每个
Beer
对象的名称,而不是对象本身。您可以使用类似于此类别的数组“映射”函数
typedef id(^MapBlock)(id input);
@implementation NSArray (Additions)
- (NSArray *)arrayByMappingWithBlock:(MapBlock)block {
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:self.count];
for (id obj in self) {
[array addObject:block(obj)];
}
return array;
}
@end
然后你会像这样使用它
NSArray *beerNames = [self.beers arrayByMappingWithBlock:^id(Beer *beer) {
return beer.name;
}];
不确定这是否是您想要实现的,但下面的行将生成一个包含所有啤酒名称的数组:
[self.beers valueForKeyPath:@"name"];
假设
Beer
是一个自定义类,有一个名为name
的NSString
属性,对吗?@user3386109是的,这是正确的。现在你们正在为我编写代码,但对于记录,我在使用以下内容实现时遇到了此运行时错误:valueForUndefinedKey::该类不符合键名称的键值编码。然后,“name”不是Beer类的属性,或者beers数组中有另一个对象不是Beer类的实例。