美文网首页
野指针调用问题

野指针调用问题

作者: 萨缪 | 来源:发表于2020-05-10 00:08 被阅读0次

    第二次出现此问题 第一次是Unity时,
    我们一定要注意 在某个方法中 调用一个回调或者一个函数时,参数是指针类型,那么一定不要传入一个在该函数中直接声明的指针!!!

    - (void)SuccessToLoad:(ExpressAd *)ExpressAd views:(NSArray<__kindof AdView *> *)views
    {
        NSLog(@"%s",__FUNCTION__);
        self.AdViews = [NSMutableArray arrayWithArray:views];
        id viewArray = views;
        void *p = (__bridge void *)self.AdViews;
        self.onSuccessToLoad(self.context, p, [self.AdViews count]);
    }
    

    注意上面的一句

    void *p = (__bridge void *)self.AdViews;
    

    如果使用viewArray 对 p进行赋值的话
    那么他的生命周期就只是在这个函数中! 出了函数作用域就会被释放!
    所以得用一个全局存在的属性self.AdViews来对其进行赋值!!!

    相关文章

      网友评论

          本文标题:野指针调用问题

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