Objective c 何时应该释放异步使用的对象?

Objective c 何时应该释放异步使用的对象?,objective-c,ios,xcode,Objective C,Ios,Xcode,我有一个封装异步NSURL请求的对象。我应该什么时候发布它 StrangersRequest *request = [[StrangersRequest alloc] init]; request.strangersListener = strangersListener; [request send]; XCode中的Analyze说我应该立即释放它——但这是不对的,因为它必须处理URLRequest回调 释放处理异步事件的对象的合适模式是什么 我猜我应该在请求完成时释放(connectio

我有一个封装异步NSURL请求的对象。我应该什么时候发布它

StrangersRequest *request = [[StrangersRequest alloc] init];
request.strangersListener = strangersListener;
[request send];
XCode中的Analyze说我应该立即释放它——但这是不对的,因为它必须处理URLRequest回调

释放处理异步事件的对象的合适模式是什么


我猜我应该在请求完成时释放(
connectiondifinishload
)。如果是这样,我如何才能停止Analyze对它的抱怨呢?

您应该在使用它的类中维护对它的引用,然后立即将其丢弃。然后,您的类可以在完成时删除引用。大概是这样的:

StrangersRequest *request = [[StrangersRequest alloc] init];
request.strangersListener = strangersListener;
[request send];
self.strangersRequest = request;
[request release];

一种解决方案是将其存储在ivar而不是局部变量中。

您可以遵循
NSThread
模型,让对象保留自身,直到其异步任务完成