iOS:for循环中对象的属性是否为空?

时间:2012-07-23 00:36:06

标签: ios for-loop nsmutablearray

这是我第一次在iOS中使用for循环!乌拉!

请注意,“bookTitle”是类中的NSString对象。当这个类启动时,它接受一个String参数并将bookTitle设置为。

books = [[NSMutableArray alloc] initWithObjects:

[[Book alloc] initWithTitle:@"What a great title" andAuthor:@"R Crimson"], 

[[Book alloc] initWithTitle:@"What another great title" andAuthor:@"R Crimson"], 
 nil ];
NSUInteger count = [books count];
for(NSUInteger i= 0; i < count;i++){
    Book *tb= [books objectAtIndex:i];
    if(tb.title=bookTitle){
        nameLabel.text=tb.title;
    }

可悲的是tb.title和bookTitle都是null。应该发生的是,数组中任何标题与bookTitle匹配的对象应该将其标题分配给nameLabel。

所以我想知道我哪里出错了,还有更好的解决方案吗?因为title属性不是唯一的标识符,所以如果我添加两个具有相同标题的对象(不太可能,但仍然!)它将返回多个对象,这是不好的。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您的if声明中有错误。

if (tb.title = bookTitle)

您只有一个=,因此您始终将tb.title设置为bookTitle

但是,不要添加另一个等号,请执行以下操作:

if ([tb.title isEqualToString:bookTitle]) {
    ...
}

更多信息here