gpt4 book ai didi

ios - 在 UIView 生命周期中知道 View 何时被销毁

转载 作者:行者123 更新时间:2023-11-29 12:01:35 34 4
gpt4 key购买 nike

我有一个 UIView,它是 UIPageViewController 的一部分。我向这个 View 传递了一个强烈的对象,但在发布时遇到了问题。

以前我想我是用viewDidUnload来释放任何强对象,然后调用Dealloc。现在由于强大的对象,交易永远不会被调用。

通过 UIPageViewController 了解 icm 不再需要该对象的最佳方法是什么。 IE。如果它是用户正在查看的页面旁边的 View ,它可能会回到 View 中。因此,我预计使用 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;

最佳答案

View 不再卸载,较新的设备没有如此严格的内存限制,并且还有其他优化。看起来当你说 View 时你实际上指的是 View Controller ,这有点令人困惑。

如果您的 View Controller (VC) 提供了一些数据,它可以保留对它的引用,直到它被销毁。数据不应保留 VC 或其 View 。如果您有任何类型的观察/授权,那么该链接应该是弱的以防止保留周期。

以这种方式,当不再需要 VC 时,即当它从其父级或演示者中删除时,数据将被释放。

特别是对于核心数据和对 NSManagedObject 的引用,您可以通过调用带有 NO 标志的 refreshObject:mergeChanges: 来帮助系统将对象变成故障并将其数据从内存中删除。当 View 确实消失时,您可以执行此操作。

关于ios - 在 UIView 生命周期中知道 View 何时被销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36778930/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com