几乎说明了一切......我已经向我的 UIButton 添加了几个目标,我只需要知道我是否需要在 UIButton 被释放(和 dealloc'd)之前删除它们,或者是否可以只是假设它会自己整理好吗?
谢谢!
编辑:场景是这样的:一个 UIViewController
创建一个按钮并将目标设置为 self
:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:btn];
所以现在按钮由 super View 拥有,并在运行循环结束时自动释放。所以,如果我稍后从 View 中删除按钮,它会 dealloc 好吗,还是我还需要执行 removeTarget:action:forControlEvents:
才能让按钮消失?我猜是前者,因为我希望目标是分配的而不是保留的,但是有人确认一下会很好吗? :)
最佳答案
您是说您还有其他对象将 UIButton 用作目标吗?
如果是这样 - 如果这些对象被正确实现 - 它们应该将它们的成员变量 getter/setter 属性设置为“保留” - 这意味着它们应该持有一个对你的 UIButton 的引用。
因此,您可以释放 UIButton,但如果引用对象仍然引用它 - 它们将保留 UIButton。
当然,如果我正确地低估了你的问题......
关于objective-c - 我需要在释放之前从 UIButton 中删除目标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4069970/