Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 不确定在何处调用对象上的释放。帮忙?_Iphone_Objective C_Memory Management - Fatal编程技术网

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

我有一个类处理iPhone上的所有网络访问。我使用它的方式如下:

-(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?谢谢!我想这么做,但我不确定这是不是真的。