-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を持つビューコントローラーが必要です。

最初のビュー コントローラーは、名前と動機と呼ばれる別の配列を含むカテゴリ オブジェクトを表示します。

2 番目のビュー コントローラーは、categories.motives 配列を表示することになっています。

カテゴリ オブジェクトはセグエと共に渡され、正常に動作します。

ここでは、nsmutablearray が以前に入力されていない場合に入力しようとしています。

しかし、if ステートメントは機能しません。ビューが読み込まれるたびに、motivesLoaded bool が YES に変更された場合でも、オブジェクトが motives 配列に追加されます。

4

2 に答える 2

1

で文字列の等価性をチェックするべきではありません==。これは、それらが同じオブジェクトであることをチェックするだけです

あなたが使用する必要があります

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

ポインターが等しいかどうかをチェックします。したがって、self.title が同じ名前で、文字列 @"Haugesund Motiver" の別のインスタンスである場合、チェックは失敗するため、[NSString isEqualToString:] メソッドを使用する必要があります。

于 2012-09-20T14:49:32.987 に答える