0

这是我第一次在 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 都是空的。应该发生的是,数组中具有与 bookTitle 匹配的标题的任何对象都应该将其标题分配给 nameLabel。

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

提前致谢。

4

1 回答 1

1

你的if陈述有误。

if (tb.title = bookTitle)

你那里只有一个=,所以你一直在tb.title设置bookTitle

但是,不要添加另一个等号,而是这样做:

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

更多信息在这里

于 2012-07-23T00:45:45.973 回答