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