开发者社区> 问答> 正文

ios工程在ARC下怎么延长局部变量的生命周期?

在学习ios开发,遇到这样的问题。

片段一:
UIGestureRecognizer *scaler = [[UIGestureRecognizer alloc] initWithTarget:self.faceView action:@selector(pinch:)];
[self.faceView addGestureRecognizer:scaler];
 
     
片段二:
[self.faceView addGestureRecognizer:[[UIPinchGestureRecognizer alloc] initWithTarget:self.faceView action:@selector(pinch:)]];

片段一不能正常工作,片段二可以,我猜测是addGestureRecognizer函数不能strong地保持一个很快被释放的局部变量指向的对象。

问题二:

想要不使用storyboard,纯代码创建视图,如果要创建一堆Button,是不是用NSMutableArry来存比较好,这时会出现上面的问题,我如果先用UIButton*变量alloc init出来按钮再add到array里,结果array最后是空的。如何解决呢?

展开
收起
杨冬芳 2016-06-29 17:47:59 3244 0
1 条回答
写回答
取消 提交回答
  • IT从业

    问题一:你必须这样写:

    UIPinchGestureRecognizer *scaler = [[UIPinchGestureRecognizer alloc] initWithTarget:self.faceView action:@selector(pinch:)];

    3 [self.faceView addGestureRecognizer:scaler];

    2019-07-17 19:49:17
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载