0

代表的属性“分配”和“保留”

我知道使用'assign'更好,但如果使用保留更好。

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

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

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

有方法处理请求结果。


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

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

所以当视图控制器被释放时,我必须保留 RKRequest 并将 nil 分配给委托。

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


但我不认为如果 RKRequest 将委托指针作为“保留”指针,我该如何漂亮地管理这些对象?

4

1 回答 1

4

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

[[RKRequestQueue sharedQueue] cancelRequestsWithDelegate:self];
于 2011-07-29T20:53:45.740 回答