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将委托指针作为“保留”指针,我该怎样才能美丽地管理这些对象?
答案 0 :(得分:4)
所需的只是将以下调用添加到您的控制器(RKRequestDelegate)dealloc方法:
[[RKRequestQueue sharedQueue] cancelRequestsWithDelegate:self];