2009-10-24 65 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