2010-10-12 48 views
0

我处于一个奇怪的困境。我有一个clsA类,它有一些方法。我在其他类中创建ClsA的实例并访问clsA的方法。我已经在头文件中声明了clsA的对象,并且同时写这两行。内存意外释放

clsAobj = [[clsA alloc] init]; 
[clsAobj someemethod]; 

的问题是,虽然第1行的执行之后调试调试器显示内存分配给clsAobj但第二线的执行之后,所分配的存储器丢失和变为0x0。访问ClsA的任何方法时都是如此。

有人能帮助我了解这个难题吗?谢谢 。

+0

你的init方法是什么?你需要把更多的细节放在关于clsA的类中。 – Ben 2010-10-13 01:11:48

回答

0

很难说没有看到clsA和someemethod是如何实现的。我最好的猜测是clsA的init或alloc方法返回nil(在第一行之后使clsAobj为零,而不是第二行),但是没有看到更多的代码,它会给你提供更详细的反馈会很困难。

0

您是否正在调试优化代码?这可以解释你所看到的;编译器已经对参考进行了优化,因为它不再需要。

或者,您的return self在您的init方法?