-2
-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.title = category.categoryName;

    if (self.title == @"Haugesund Motiver" && !motivesLoaded) {
        MotivesDataModel *motiv = [[MotivesDataModel alloc] init];
        motiv.motiveName = @"ksaldkaldsk";
        [category.motives addObject:motiv];
        motivesLoaded = YES;
    }    
}

为什么这不起作用?

我必须查看控制器,每个控制器都有一个 TableView。

1.st 视图控制器显示类别对象,其中包含一个名称和另一个名为 motives 的数组。

2.nd 视图控制器应该显示 categories.motives 数组。

类别对象与 segue 一起传递,并且工作正常。

在这里,如果之前未填充 nsmutablearray,我将尝试填充它。

但是 if 语句不起作用。每次加载视图时,它都会将对象添加到 motives 数组中,即使 motivesLoaded 布尔值更改为 YES

4

2 回答 2

1

你不应该检查字符串的相等性==,这只是检查它们是否是同一个对象

你应该使用

[self.title isEqualToString:@"Haugesund Motiver"]
于 2012-09-20T14:46:39.737 回答
0
self.title == @"Haugesund Motiver"

检查指针的相等性,因此如果 self.title 具有相同的名称,但有另一个 String @"Haugesund Motiver" 实例,则检查将失败,因此您应该使用 [NSString isEqualToString:] 方法

于 2012-09-20T14:49:32.987 回答