2012-02-21 37 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 2012-02-21 05:09:18

+0

151是appDelegate.subjects的大小 – jroyce 2012-02-21 05:14:31

+0

當您運行它時,您的應用程序是否實際上打印了「添加主題:...」。 – 2012-02-21 05:14:46

回答

4

你分配內存以cat.subjects

cat.subject = [[NSMutableArray alloc] init]; 

subject = [[NSMutableArray alloc] init]; 

在你的Category類?如果沒有,那就做吧。這可能是問題之一。


更新
首先從Category *cat = [Category alloc];更改您的代碼Category *cat = [[Category alloc] init];
和改變你的init作爲

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

檢查數組是否分配內存,這可能是任何對象沒有被添加進來的原因之一。 – Rupesh 2012-02-21 05:26:36

+0

我認爲這可能是問題所在。我不會在任何地方分配內存。我添加了這個: - (id)init {self = [super init]; subjects = [[NSMutableArray alloc] init]; if(self)//初始化自我。 } return self; } 並嘗試了一遍,它做了同樣的事情。 – jroyce 2012-02-21 05:40:18

+0

需要一些幫助分配內存。不知道如何正確地做到這一點... – jroyce 2012-02-21 06:21:00

相關問題