我有一个由对象组成的数组:
ViewController *item1 = [ViewController new];
item1.name = @"Mary";
item1.Description = @"good girl";
ViewController *item2 = [ViewController new];
item2.name = @"Daniel";
item2.Description = @"bad boy";
ComplexArray= [NSArray arrayWithObjects: item1, item2, nil];`
我希望在标签中查看名称和描述,如果名称相等玛丽
for (int i = 0; i < [ComplexArray count]; i++) {
if (item[i].name isEqualString:@"Mary") {
_nameLabel.text= item[i].name;
_DescriptionLabel.text= item[i].Description;
}
}
请帮帮我
答案 0 :(得分:1)
你基本上拥有它。我所做的就是将item
重命名为ComplexArray
,在[]
电话周围添加了isEqualToString
,并添加了break
:
for (int i = 0; i < [ComplexArray count]; i++) {
ViewController *item = ComplexArray[i];
if ([item.name isEqualString:@"Mary"]) {
_nameLabel.text= item.name;
_DescriptionLabel.text= item.Description;
break; // Added
}
}
还有其他方法,但这种方法很好。
BTW:按照惯例,变量应该以小写字符开头。
答案 1 :(得分:0)
您的问题是您没有在item
变量中分配任何内容。只需像这样更新就可以了。
for (int i = 0; i < [ComplexArray count]; i++) {
ViewController *item = [ComplexArray objectAtIndex:i]; // you missed this line.
if ([item.name isEqualToString:@"Mary"]) { //you missed the opening "[" and closing "]"
_nameLabel.text= item.name;
_DescriptionLabel.text= item.Description;
}
}