繁体   English   中英

僵尸杀死了我的应用程序

[英]Zombie kills my App

我正在UITableView实现异步图像加载,如果我快速滚动行,由于发送到僵尸的消息导致我的应用程序崩溃了……我在这里怎么办?

//loading image from URL
-(void)loadImageFromURL:(NSURL*)url {
    if (connection!=nil) { [connection release]; }
    //data is NSMutableData
    if (data!=nil) { [data release]; }

    NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
    connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
}

//Append received data when it is received
- (void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)incrementalData {
    if (data==nil) { data = [[NSMutableData alloc] init]; } 
        [data appendData:incrementalData]; //Message sent to zombie, app CRASHES HERE
}

//When finished
- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection {
    //so self data now has the complete image 
    [connection release];
    connection=nil;
    //Use received data to construct image
    [data release]; 
    data=nil;
}

这里:

if (connection!=nil) { [connection release]; }
if (data!=nil) { [data release]; }

您正在发布数据。 稍后,您尝试使用发布的数据,以使其崩溃。 尝试这个:

if (connection!=nil) { [connection release]; connection = nil; }
if (data!=nil) { [data release]; data = nil; }

这样,您的if语句将实际触发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM