【发布时间】:2016-04-21 19:36:28
【问题描述】:
我有一个 UIView,它是 UIPageViewController 的一部分。 我将一个强对象传递给此视图,但在释放时遇到问题。
过去我认为我使用 viewDidUnload 来释放任何强对象,然后调用 Dealloc。现在由于强大的对象,交易永远不会被调用。
使用 UIPageViewController 了解 icm 对象不再需要的最佳方法是什么。 IE。如果它是用户正在查看的页面旁边的视图,它可能会重新出现。所以使用 viewWillDisappeart 将无法正常工作。
@interface DOTourFloorPlanViewController : UIViewController <UIScrollViewDelegate, DOAsyncImageViewDelegate> {
IBOutlet DOAsyncImageView* _imageView;
IBOutlet UIScrollView* _scrollView;
NSMutableArray* _beaconLabels;
UIView* _circle;
UIView* _centerDot;
DOTour* _tour;
CGRect _zoomRect;
int _circleCenterX;
int _circleCenterY;
bool _didZoomToLocation;
}
@property (strong, nonatomic) DOTour* tour;
【问题讨论】:
-
所以你有一个保留周期?应该是弱点吗?如果不显示代码/解释对象是什么引用,我们真的无能为力
-
我需要保留提供数据的核心数据对象,因为如果我不保留它,它将从 NSFetchedResultsController 中释放。我只是不知道何时可以安全地释放此视图中的对象 icm a UIPageViewVontroller,因为我不知道有什么方法可以知道何时不再使用该视图。
-
@Wain 实际上,我查看了代码,在这一刻我可能可以使链接变弱。现在测试,但这似乎解决了它。因此,如果您提出该建议作为答案,那么我接受它。
标签: ios objective-c iphone uiview