2011-09-19 49 views
3

我在我的应用程序,有时发生崩溃,我启用了僵尸测试这种方法,发现作为一个僵尸,这种方法通常工作正常,但像很多导航回一些条件在某个点上它会崩溃。iPhone:在modalview僵尸对象,并委托

我保留datepickerView在@property和deaaloc释放。

enter image description here

+0

是datePickerView一套挽留? – EricS

+0

是datePickerView“分配”还是“保留”属性(sniped)? –

+0

@EricS保留它 – Spring

回答

1

设置datePickerDelegate到的dealloc为零。如果它在第一个实例化之后有一个retain属性,那么委托可能会有一个死亡引用,并且会在启用僵尸时随机导致创建和崩溃。发生崩溃的原因是保留属性释放先前的值,并且如果它是死的引用随机随机发生。另外最好设置代表分配,不保留。在仪器

运行,在设定“记录的引用计数”关于分配(你必须停止记录设置的选项)。导致选择器运行,停止录制,在那里搜索ivar(datePickerView),向下钻取,您将能够看到所有保留,发布和自动释放发生的位置。

Reference Counts

+0

tnx,设置delegete分配解决我的问题,非常聪明 – Spring

0

我认为没有理由在内存中保存选择器已经从栈中弹出后...

而是保留DatePickerController的,去掉“自动释放”和“释放”刚过presentSemiModalViewController,按照reednj职位上SemiModelDatePicker

TDDatePickerController* datePickerView = [[TDDatePickerController alloc] 
           initWithNibName:@"TDDatePickerController" 
           bundle:nil]; 
datePickerView.delegate = self; 
[self presentSemiModalViewController:datePickerView]; 
[datePickerView release]; 

希望这将缓解这个问题。否则,它可能只是SemiModalDatePicker扩展的问题。