property "assign" and "retain" for delegate

我知道使用'assign'会更好,但是我可以保留使用更好。

我通过制作RKRequest对象来调用Web服务。

RKRequest *request = [[RKClient sharedClient] get:urlString delegate:self];


请求对象本身由单例请求队列保留和管理,因此我不在乎请求对象,而仅关注委托方法。

有处理请求结果的方法。



这些代码在UIViewController中,视图控制器本身是委托。

如果在处理请求期间视图控制器变为dealloc,则死指针的RKRequest调用委托将导致程序崩溃。

所以我必须保留RKRequest并在视图控制器解除分配时将nil分配给委托。

此外,当请求成功或失败时,我必须释放RKRequest。



但是我不认为RKRequest是否将委托指针作为“保留”指针,我该如何管理这些对象呢?

最佳答案

需要做的就是将以下调用添加到控制器(RKRequestDelegate)的dealloc方法中:

[[RKRequestQueue sharedQueue] cancelRequestsWithDelegate:self];

10-08 07:27