委托属性分配问题,RestKit RKRequest

时间:2011-07-29 14:27:58

标签: objective-c ios delegates restkit

property "assign" and "retain" for delegate

我知道使用'assign'会更好,但我保留使用retain更好。

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

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

请求对象本身由单例请求队列保留和管理,所以我不关心请求对象,我只关心委托方法。

有方法处理请求结果。


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

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

所以当视图控制器是dealloc时,我必须保留RKRequest并为委托分配nil。

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


但我不认为如果RKRequest将委托指针作为“保留”指针,我该怎样才能美丽地管理这些对象?

1 个答案:

答案 0 :(得分:4)

所需的只是将以下调用添加到您的控制器(RKRequestDelegate)dealloc方法:

[[RKRequestQueue sharedQueue] cancelRequestsWithDelegate:self];