2009-10-24 66 views
1

我的程序中有以下代碼片斷。alloc-init有時在程序中失敗

如果我寫

mo=[[myObj alloc] init]; 

失敗,但如果我寫

mo=[myObj alloc]; 
mo=[mo init]; 

它的工作原理。這兩種方法應該是等價的,但不知何故我搞砸了。任何光線?

澄清:

MyObj中是一類

它未能通過努力要分配給不同類型的對象,沒有找到正確的方法,最終crapping從初始化走出多遠的名字。

+3

是myObj類的名字?常見的nubie錯誤是將實例的名稱放在alloc中。它是一個自定義類還是你看到與Foundation類相同的問題?什麼錯誤得到回報? – TechZen 2009-10-24 19:01:09

+3

它以什麼方式失敗?即第一種方法和第二種方法在程序中發生了什麼不同? – 2009-10-24 20:05:37

+0

同意。你需要提供更多關於*失敗的信息。 – 2009-10-24 21:31:52

回答

3

我認爲這隻有在-(id)init方法在myObj類中覆蓋錯誤時纔會發生。 也許你沒有return self;或者你沒有返回類型(id)。如果沒有一個是正確的,請提供關於-(id)init方法如何實施的更多細節。

+0

+1。這聽起來像是一個很好的猜測,爲什麼它只會在一種情況下失敗。好想法! – 2009-10-24 22:32:12