2010-09-09 56 views
0

我有一個類,這是初始化像這樣。getter和setter和財產保留在objective-c

// myclass.h 
@property(nonatomic,retain) NSMutableArray *daysOfWeek; // this is in .h file 

// myclass.m 
@synthesize daysOfWeek; 

-(id)init { 
      if(self=[super init]) { 
        // initialize days of week 
        self.daysOfWeek = [NSMutableArray arrayWithCapacity:0]; 
      } 
      return self; 
    } 

然而,在應用程序生命週期的後期,似乎daysOfWeek被釋放。如果我添加保留init方法:

self.daysOfWeek = [[NSMutableArray arrayWithCapacity:0] retain]; 

然後一切正常,我可以從daysOfWeek添加和檢索對象。 我認爲合成會保留daysOfWeek,我在這裏錯過了什麼?

謝謝

+2

self.daysOfWeek = [NSMutableArray arrayWithCapacity:0];應該沒問題...檢查你的代碼 - 可能是你覆蓋你的數組某處不使用財產或釋放它... – Vladimir 2010-09-09 08:14:41

回答

3

問題出在別的地方。你原來的init沒問題。

+0

是的,問題是在錯誤的dealloc方法實現。這個問題不需要任何答案,也不會給網站增加任何實際價值,但不幸的是我不能將其標記爲刪除。 – Leonardo 2010-09-14 12:30:54