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];