这是我第一次在 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。
所以我想知道我哪里出了问题,是否有更好的解决方案?因为 title 属性不是唯一标识符,所以如果我将两个具有相同标题的对象添加到书籍中(我不太可能会这样做,但仍然如此!),它会返回多个对象,这是不好的。
提前致谢。
最佳答案
您的 if
语句中有错误。
if (tb.title = bookTitle)
其中只有一个 =
,因此您始终将 tb.title
设置为 bookTitle
。
但是,不要添加另一个等号,而是这样做:
if ([tb.title isEqualToString:bookTitle]) {
...
}
更多信息here .
关于iOS:for循环中对象的属性为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605181/