我陷入了一个奇怪的困境。我有一个类clsA,它有一些方法。我在其他类中创建ClsA的实例并访问clsA的方法。我在头文件中声明了clsA的对象,我同时写了这两行。
clsAobj = [[clsA alloc] init];
[clsAobj someemethod];
问题在于,执行第一行调试器后的调试显示分配给clsAobj的内存但执行第二行后,分配的内存丢失并变为0x0。访问ClsA的任何方法时都是如此。
任何人都可以帮助我理解这种困境吗?谢谢。
答案 0 :(得分:0)
如果不了解如何实施clsA和某些方法,很难说出现了什么。我最好的猜测是clsA的init或alloc方法返回nil(使clsAobj在第一行之后没有nil而不是第二行)但是如果没有看到更多的代码,那么很难给你更详细的反馈。
答案 1 :(得分:0)
您是否正在调试优化代码?这可以解释你所看到的;编译器已经优化了引用,因为不再需要它。
或者,您在return self
方法中init
了吗?