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

标签 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 都为空。应该发生的情况是,数组中任何具有与 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/

相关文章:

c - 加密字符串

ios - 将一个数组类型的解析对象设置为 tableView

ios - Crashlytics 和 Google Analytics 以及缺失的 dSYM

iphone - 每次触摸UIButton时将值增加1

Java For 循环数据验证

ios - 从 TableView 中检索索引路径

iOS:从文档目录获取文件名到 NSMutableArray

ios - 在 iOS 设备上尝试时 Flutter 签名无效

ios - 'Any[]' 类型的不可变值在 Swift 中只有名为 'append' 的可变成员,尽管数组定义为 'var'

ios - 为什么此代码适用于 iPhone 5、4 和 4s 而不是 5s?