2012-10-18 23 views
0

我有我的默認初始化器:INIT不返回自我

- (id)init 
{ 
    if ((self = [super init])) 
    { 
    } 

    return self; 
} 

我只包括在我的類此方法可以跟蹤它是否正在執行它的工作,從我所知道的,它是。

自我越來越集,並在控制檯中我可以看到自己有一個內存地址是不0x0000000。例如,下面是從運行控制檯我只是想:

self IssueManager * 0x08383ad0 

然而,當該方法返回自這個方法:

- (id)initWithNibName:(NSString *)nibNameOrNil 
       bundle:(NSBundle *)nibBundleOrNil 
    { 
     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 

     if (self) 
      self.issueManager       = [[IssueManager alloc] init]; 

     return self; 
    } 

self.issueManager仍然是一個空指針:

_issueManager IssueManager * 0x00000000 

我不知道爲什麼是這樣的話,但希望得到任何幫助。

+0

我們能看到你聲明IssueManager? –

回答

2

而不是使用:

self.issueManager 

嘗試:

issueManager = [[IssueManager alloc] init]; 

記住,使用點符號是簡單地使用@property和@synthesize提供存取/ setter方法。在你的init方法中,你不應該使用accessor/setter方法。

+0

我刪除了self.issueManager並將其替換爲_issueManager。 IDE然後警告我,將它分配給弱指針意味着在函數結束時它已經被設置爲零。 因此,我做了你所說的,但也使它成爲一個強大的指針。這已經解決了這個問題。 4分鐘內我會接受你的回答,謝謝。 –

相關問題