关于 delegate = nil 的问题

2015-03-26 22:23:13 +08:00
 georgetso
各位都知道,设置了 xxx.delegate = self 后,需要在 dealloc 之类的地方 xxx.delegate = nil

那么,如果是在 IB 里设置了 tableview.delegate = file's owner
应该在哪里设置 .delegate = nil 呢?
还是不用设置?
2241 次点击
所在节点    iDev
8 条回复
walkingway
2015-03-26 23:00:57 +08:00
如果 tableview 只有 tableviewController 指向(strong)他,就不用,因为 tableviewController 销毁了,tableview 也跟着销毁了,当然 delegate 要设成 weak。
georgetso
2015-03-27 00:02:08 +08:00
@walkingway 我是说在 interface builder 里的做法
huanglexus
2015-03-27 00:45:31 +08:00
不用设置。。
代码写也不用写这多余的delegate=nil
因为这是weak指针。
LMkillme
2015-03-27 00:55:07 +08:00
@georgetso ib里面也是weak :-D
georgetso
2015-03-27 09:21:20 +08:00
已感谢
xuzhongzhou
2015-03-27 11:13:56 +08:00
You do not have to (indeed cannot) release instance variables, but you may need to invoke [self setDelegate:nil] on system classes and other code that isn’t compiled using ARC.
kepenj
2015-04-01 14:13:18 +08:00
保持良好习惯dealloc 里面制空。
kobe1941
2015-04-14 10:57:58 +08:00
delegate一直用weak修饰,不用在dealloc里设置为nil,多此一举(ARC下)。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179592

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX