2009-09-23 69 views
0

我得到我的UIDatePicker视图崩溃,我认为这是因为我不保留选择选择日期。谁能告诉我,如果这可能是正确的?我必须保留来自UIDatePicker模态视图的日期吗?

我有一个选择toDatefromDate范围的模态视图。这些值被传递到模态视图中,并在视图被解散时从视图中取出。 该视图有一个UIDatePicker和一个分段按钮,用于在日期和日期之间切换。

每次分段控制开关时,我都会将采摘日期设置为匹配日期或开始日期。当选择器值发生变化时,我相应地更新日期或日期。在这些日期之间几次切换后,视图崩溃。

我不持有采摘选择的日期,所以当我设置为从toDate的采摘日期为fromDatetoDate值被释放,所以当我切换选择器回toDate它要我猜坠毁。

同样使用从视图外部的选择器中选择的日期将需要保留日期,因为选择器将随着日期一起被释放?

这对任何人都有意义吗?

回答

1

如果您需要从UIDatePicker获取日期值,那么如果您在功能范围之外(比如在多个AutoreleasePool周期中)使用它,则确实需要保留副本。

从UIDatePicker获取日期保留一个引用,但它会自动释放,因此有效直到自动释放池被销毁才有效。

一旦你完成了它,记得发布你的参考。

只需在函数内暂时使用它,您将不需要如上所述保留它。

0

你为什么不你viewvcontroller或其他类的属性设置为你约会开始使用:

self.date =日期;

将日期定义为带有retain属性的@property。这样,你应该可以在你的应用程序的其他地方使用日期,并且当你通过runloop时它不会被自动释放。

+0

如果我这样做,然后说self.date = [选择器日期];那么self.date就不会指向pikers的日期,并且在选择日期被设置为另一个日期时被释放。即[picker setDate:date2]; – McKay 2009-09-23 23:19:51

相关问题