美文网首页
控制器无法释放的原因

控制器无法释放的原因

作者: 野咪咕 | 来源:发表于2022-01-29 14:31 被阅读0次

1,在block 方法里面直接写代理 举例:

self.categoryView.selectedItemHelper = ^(NSUInteger index) {

//直接写代理

 if (self.delegate && [self.delegate respondsToSelector:@selector(segmentedPageViewControllerDidEndDeceleratingWithPageIndex:)]) {

        [self.delegate segmentedPageViewControllerDidEndDeceleratingWithPageIndex:index];

    }


    };

//解决办法 另写个方法在写代理方法

self.categoryView.selectedItemHelper = ^(NSUInteger index) {

        //代理方法

        [myselfdidEndDeceleratingWithPageIndex:index];

    };


2,封装的view 传控制器 举例:

//注意点:如果searchView 里面的子view,或者其他view 也传popToVC了,例如:self.saomiaoView.popToVC=self.popToVC; 也要释放不然控制无法释放


@interface LLJFound_searchView : UIView

@property (nonatomic,strong)UIViewController * popToVC;

@end

//这样然后直接不管了,控制器得不到释放

- (void)viewDidLoad {

    [super viewDidLoad];

 self.searchView.popToVC = self;

}

解决办法

1,@property (nonatomic,weak)UIViewController * popToVC;//用weak 修饰vc,不用担心不能释放

2,不建议,还得手动至为nil

-(void)viewWillAppear:(BOOL)animated

{

    

     [super viewWillAppear:animated];

     self.searchView.popToVC = self;

     [self.navigationController setNavigationBarHidden:YES animated:animated];

     

}

-(void)viewWillDisappear:(BOOL)animated

{

    [super viewWillDisappear:animated]

//如果searchView 里面的子view,或者其他view 也传popToVC了,例如:self.saomiaoView.popToVC=self.popToVC; 也要释放不然控制无法释放

    self.searchView.popToVC = nil; //必须释放vc 不然控制无法释放

   self.searchView.saomiaoView = nil;//必须释放vc 不然控制无法释放

    [self.navigationController setNavigationBarHidden:NO animated:animated];

   

}


3,block  内部打印 DLog(%@,"不能释放");


#ifdef DEBUG

#define DLog(...) NSLog(@"%s(%p) \n\t%@", __PRETTY_FUNCTION__, self, [NSString stringWithFormat:__VA_ARGS__])

#else

#define DLog(...)

#endif


因为 DEBUG 模式下 打印了当前控制器,导致block内部打印东西,控制器无法释放

4,  获取当前控制器,在tableviewCell里面,然后写push跳转。

会造成当前控制器无法释放

 UIViewController *currentCtrl = [[UIApplication sharedApplication] currentViewController];

相关文章

网友评论

      本文标题:控制器无法释放的原因

      本文链接:https://www.haomeiwen.com/subject/tcxfkrtx.html