这是我第一次在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属性不是唯一的标识符,所以如果我添加两个具有相同标题的对象(不太可能,但仍然!)它将返回多个对象,这是不好的。
提前致谢。
答案 0 :(得分:1)
您的if
声明中有错误。
if (tb.title = bookTitle)
您只有一个=
,因此您始终将tb.title
设置为bookTitle
。
但是,不要添加另一个等号,请执行以下操作:
if ([tb.title isEqualToString:bookTitle]) {
...
}
更多信息here。