Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone中的代理和内存泄漏?_Iphone - Fatal编程技术网

iPhone中的代理和内存泄漏?

iPhone中的代理和内存泄漏?,iphone,Iphone,我的ViewController中有一个tableview(即IBOutlet)和tableviewController 我所做的是 //。。。。tableviewController的分配 self.tableview.delegate=tableviewController //现在这增加了tableviewController的保留计数 那么,在解除分配中,我需要将tableview委托设置为nil吗 self.tableview.delegate=nil; 或 self.tablevie

我的ViewController中有一个tableview(即IBOutlet)和tableviewController

我所做的是

//。。。。tableviewController的分配 self.tableview.delegate=tableviewController

//现在这增加了tableviewController的保留计数

那么,在解除分配中,我需要将tableview委托设置为nil吗

self.tableview.delegate=nil; 或
self.tableview=nil;//足以确保tableviewController的保留计数减少1。

tableView已在其dealloc方法中重新实现其委托,因此您无需显式将委托设置为零即可。

表视图不保留其委托:

@property(nonatomic, assign) id<UITableViewDelegate> delegate
@属性(非原子,赋值)id委托
原因是保留可能会导致保留周期。看见
要使委托保持活动状态,您必须自己在某处维护对它的引用。

否,表视图既不保留也不释放其委托。