Objective-C的。访问由对象组成的数组中item的属性

时间:2016-07-29 10:39:13

标签: objective-c arrays xcode

我有一个由对象组成的数组:

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;
    }
}

请帮帮我

2 个答案:

答案 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;
    }
}