objective-c - 我需要在释放之前从 UIButton 中删除目标吗?

标签 objective-c cocoa-touch ios uibutton

几乎说明了一切......我已经向我的 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/

相关文章:

ios - 避免触发 touchesBegan : until a swipe gesture recognizer fails

iphone - 另一个类中方法的参数化 UIButton Action 选择器?

ios - 如何在 CoreMidi 轨道中播放特定 channel ?

ios - 单例归档不取消归档可用实例

ios - MetricKit MXCallStackTree 符号

objective-c - 访问两个不同 nib 文件中的同一对象

iphone - 如何更改 UITextField 使其看起来像搜索文本字段?

ios - UITextView - 启用听写警报 swift 消失

ios - RxSwift - 如何按顺序链接可观察量

ios - 有没有办法在 Swift 中将特殊字符转换为普通字符?