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

发布于 2021-11-19 18:06:29 字数 709 浏览 726 评论 7

问题一:

在学习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最后是空的。如何解决呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

卸妝后依然美 2021-11-26 03:41:22

可以认识一下吗,我给你邮箱zhangningworks@gmail.com发邮件了。

奢华的一滴泪 2021-11-26 03:37:36

不管怎么都是可以的,按自己的习惯来,哈哈。

丢了幸福的猪 2021-11-26 03:36:31

是alloc + init。你可以放在数组中。我觉得不用变量,不放数组也是可以的。直接addsubview就可以了。

爱的故事 2021-11-26 03:34:33

如果使用UIGestureRecognizer 而不是 UIPinchGestureRecognizer ,还需要添加其他代码,或者子类化UIGestureRecognizer 。

结论:

该问题和ARC无关。

猫九 2021-11-26 03:01:16

问题二:NSMutableArray必须先初始化。而且不建议将Button放在Array中。

半世蒼涼 2021-11-26 02:10:48

非常感谢,按你说的改正以后就工作了,是我写的时候随便点了代码不全,没仔细看。

高跟鞋的旋律 2021-11-24 11:40:16

问题一:你必须这样写:

UIPinchGestureRecognizer *scaler = [[UIPinchGestureRecognizer alloc] initWithTarget:self.faceView action:@selector(pinch:)];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文