2012-02-21 10 views
0

メモリを正しく割り当てないという問題を絞りました。私はカテゴリのメンバとしてサブジェクトと呼ばれるNSMutableArrayを持っています。カテゴリにカテゴリのオブジェクトを格納すると、格納されません。メモリの割り当て方法と場所はどこですか?

私は自分の問題がどのようなものであると信じているのか、どのようにして被写体にどのようにメモリを割り当てるのかよく分かりません。ここで

は抜粋です:

Category *cat = [[Category alloc] init]; 
    cat.category_title = [result_categories stringForColumn:@"CATEGORY"]; 

    QuotesAppDelegate *appDelegate = (QuotesAppDelegate *)[[UIApplication sharedApplication] delegate]; 

    for (Subject *sb in appDelegate.subjects){ 

     if([cat.category_title isEqualToString:sb.category_title]){ 
      [cat.subjects addObject:sb]; 
      NSLog(@"Adding subject: %@ cat.subjects.count=%i", sb.title, cat.subjects.count); 

     } 

    } 

(上記のログが印刷cat.subject名を行いますが、それはsubjects.countを印刷しません)

+0

としてappDelegate.subjectsのサイズは? – null0pointer

+0

151はappDelegate.subjectsのサイズです – jroyce

+0

あなたのアプリは実際に 'テーマを追加:...'を実行しますか? –

答えて

4

あなたは

よう cat.subjectsにメモリを割り当てる持っています
cat.subject = [[NSMutableArray alloc] init]; 

または

subject = [[NSMutableArray alloc] init]; 
Categoryクラスの

?もしそうでなければそれをしてください。これは問題の一つかもしれません。


更新
すべての最初のCategory *cat = [[Category alloc] init];
Category *cat = [Category alloc];から、あなたのコードを変更し、あなたのinitを変更

- (id)init { 
    self = [super init]; 
    if (self) { 
     subjects = [[NSMutableArray alloc] init]; 
    } 
    return self; 
} 
+1

配列がメモリを割り当てていることを確認してください。これは、オブジェクトが追加されていない理由の1つかもしれません。 – Rupesh

+0

これはおそらく問題だと思います。私はどこにでもメモリを割り当てません。私はこれを追加しました: - (id)init { self = [super init]; 件名= [[NSMutableArray alloc] init]; if(self){ //自己を初期化します。 } return self; } もう一度試して同じことをしました。 – jroyce

+0

メモリを割り当てるための助けが必要です。どのようにこれを正しく行うかわからない... – jroyce

関連する問題