Iphone 不确定在何处调用对象上的释放。帮忙?
我有一个类处理iPhone上的所有网络访问。我使用它的方式如下:Iphone 不确定在何处调用对象上的释放。帮忙?,iphone,objective-c,memory-management,Iphone,Objective C,Memory Management,我有一个类处理iPhone上的所有网络访问。我使用它的方式如下: -(void) randomFunction: { // Assign params etc. <br /> TTNetworkAccessLib *nLib = [[TTNetworkAccessLib alloc] initWithParams:..]; [nLib createAndStartRequest]; // Can't release here since the req
-(void) randomFunction:
{
// Assign params etc. <br />
TTNetworkAccessLib *nLib = [[TTNetworkAccessLib alloc] initWithParams:..];
[nLib createAndStartRequest];
// Can't release here since the request is async and is still running.
}
-(void) requestSucceded:(NSData *) data
{
// Can pass a reference to the request object and release here, but doesn't seem right?
}
-(void) requestFailed:(int) responseCode
{
// Can pass a reference to the request object and release here, but doesn't seem right?
}
-(void)随机函数:
{
//分配参数等
TTNetworkAccessLib*nLib=[[TTNetworkAccessLib alloc]initWithParams:…];
[nLib createAndStartRequest];
//无法在此处释放,因为请求是异步的,并且仍在运行。
}
-(无效)请求成功:(NSData*)数据
{
//可以传递对请求对象的引用并在此处释放,但似乎不正确?
}
-(void)请求失败:(int)响应代码
{
//可以传递对请求对象的引用并在此处释放,但似乎不正确?
}
对于这样的委托,我建议使用自动释放
TNetworkAccessLib*nLib=[[TTNetworkAccessLib alloc]initWithParams:..]autorelease] 当我创建一个对象来异步执行某项操作时,我通常会让它在启动过程时保留自己,并在完成任何回调后释放自己。这样,创建它的代码可以在以后不需要它时释放它,并且我知道在进程完成之前不会释放它。除非TTNetworkAccessLib实例被其他对象保留,简单地自动释放实例仍可能导致在异步请求完成运行之前释放实例。是否在同一实例上多次调用randomFunction?谢谢!我想这么做,但我不确定这是不是真的。