Ios 如何解决错误:NSURLConnectionInternalConnection\u withConnectionDisconnectFromConnection

Ios 如何解决错误:NSURLConnectionInternalConnection\u withConnectionDisconnectFromConnection,ios,error-handling,nsurlconnection,nsurl,Ios,Error Handling,Nsurlconnection,Nsurl,在我的应用程序中,我正在将一个巨大的(200MB+)文件下载到磁盘。 下载完成后,我收到以下错误: [NSURLConnectionInternalConnection _withConnectionDisconnectFromConnection]: message sent to deallocated instance 0x8cb0b40 我尝试调用信息malloc history 0x8cb0b40,但我收到 Undefined info command: "mall

在我的应用程序中,我正在将一个巨大的(200MB+)文件下载到磁盘。
下载完成后,我收到以下错误:

[NSURLConnectionInternalConnection _withConnectionDisconnectFromConnection]:  
message sent to deallocated instance 0x8cb0b40  
我尝试调用信息malloc history 0x8cb0b40,但我收到

Undefined info command: "malloc-history 0x8cb0b40".  Try "help info".  
我正在使用(gdb),但仍然获得此信息。我在这里找不到错误


如何解决此问题?

下面是我的代码(NSURL方法):


我建议您使用AFNetworking框架。 此框架更易于处理,并且具有手动处理连接的许多优点。例如,可恢复下载、详细上传/下载进度等


我建议您使用AFNetworking框架。 此框架更易于处理,并且具有手动处理连接的许多优点。例如,可恢复下载、详细上传/下载进度等


在您的ConnectiondFinishLoading中,您可以在连接仍为您的代理服务时释放连接

我假设您有一个属性或ivar,它在您的类中保留了这个属性(我们称之为“myConnection”)。您应该在didFinishLoading委托中执行以下操作:

connection.delegate = nil; // insure no more delegate calls
其次是:

// either this
[self performSelectorOnMainThread:@selectior(setMyConnection:) withObject:nil waitUntilDone:NO];

// or using GCD (my preference)
dispatch_asynch(dispatch_get_main_queue(), ^ { myConnection = nil; } );

我敢打赌这会阻止坠机。[我的位置服务也有类似的问题!]

在您的连接IDFinishLoading中,您在连接仍为您的代理服务时释放连接

我假设您有一个属性或ivar,它在您的类中保留了这个属性(我们称之为“myConnection”)。您应该在didFinishLoading委托中执行以下操作:

connection.delegate = nil; // insure no more delegate calls
其次是:

// either this
[self performSelectorOnMainThread:@selectior(setMyConnection:) withObject:nil waitUntilDone:NO];

// or using GCD (my preference)
dispatch_asynch(dispatch_get_main_queue(), ^ { myConnection = nil; } );

我敢打赌这会阻止坠机。[我对定位服务也有类似的问题!]

谢谢您的推荐。但这是我当前工作的最后一步,我不想添加新的框架。想解决这个问题。谢谢你的推荐。但这是我当前工作的最后一步,我不想添加新的框架。我想解决这个问题。