我正在从我的UIDatePicker视图中崩溃,我认为这是因为我没有保留选择日期的选择器 . 谁能告诉我这是否正确?
我有一个用于选择 toDate
和 fromDate
范围的模态视图 . 这些值将被传递到模态视图中,并在视图被解除时从视图中删除 . 视图有一个UIDatePicker和一个分段按钮,用于在to和from日期之间切换 .
每次分段控制开关时,我都会将选择器日期设置为匹配日期或从日期开始 . 当选择器值更改时,我会相应地更新to或from日期 . 在这些日期之间进行几次切换后,视图崩溃 .
我猜测当我将拣选日期的值从 toDate
设置为 fromDate
时 toDate
正在释放,所以当我将拣货员切换回 toDate
时,它会崩溃 .
另外,要在视图外使用选择器中的选定日期,是否需要保留日期,因为选择器将随日期一起被释放?
这对任何人都有意义吗?
2 回答
如果您需要从UIDatePicker获取日期值,如果您要在函数范围之外使用它(例如,通过多个AutoreleasePool循环),您确实需要保留副本 .
从UIDatePicker获取日期将保留引用,但它将自动释放,因此只有在自动释放池被销毁之后才有效 .
完成后,请务必发布您的参考 .
只需在函数内暂时使用它,您就不需要像上面所述那样保留它 .
为什么不将viewvcontroller或其他类的属性设置为使用日期:
self.date = date;
使用retain属性将日期定义为@property . 这样你就可以在应用程序的其他地方使用日期,并且当你通过runloop时它不会被自动释放 .