0
当我得到一个内存警告我得到这个错误所以我的问题是,为什么productImages(这是一个scrollView)在此时释放?我不应该有机会转储它的子视图吗?iOS的内存管理内存不足的警告和viewDidUnload
它的定义是这样的:当viewDidUnload
被调用
@property (weak, nonatomic) IBOutlet UIScrollView *productImages;
当我得到一个内存警告我得到这个错误所以我的问题是,为什么productImages(这是一个scrollView)在此时释放?我不应该有机会转储它的子视图吗?iOS的内存管理内存不足的警告和viewDidUnload
它的定义是这样的:当viewDidUnload
被调用
@property (weak, nonatomic) IBOutlet UIScrollView *productImages;
您的视图控制器的观点已经被卸载。这意味着该视图的任何子视图将不再由该视图保留。我假设productImages
是视图控制器视图的子视图。在这种情况下,如果您希望在卸载视图后它仍然可用,则必须声明productImages
为strong
而不是weak
。
还有一点需要注意的是,开始重复在viewDidLoad
中的定时器使其在viewDidUnload
中无效时非常糟糕。在viewDidAppear:
和viewWillDisappear:
中做得更好。看到这个博客文章的详细解释http://antonholmquist.com/blog/why-you-really-shouldnt-create-repeating-nstimers-in-init-or-viewdidload/
你使用ARC? – 2012-08-11 21:15:40
是的,我正在使用ARC。 – soleil 2012-08-11 21:20:14
然后这真的不应该成为一个问题,任何iOS决定它需要发布的东西都会为你发布。 – 2012-08-11 21:22:44