尝试转换为float时NSURLConnection和ProgressBar崩溃

时间:2010-10-05 19:33:59

标签: nsurlconnection uiprogressbar

我正在尝试使用NSUrlConnection下载时使用进度条

我错过了什么,但不知道是什么

查看我的代码

在我的.h我有

NSMutableData *receivedData;

    NSNumber  *FileSize;

我用它来计算进度条的前缀

在我的.m

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response  

{   
    [receivedData setLength:0];

    FileSize = [NSNumber numberWithLongLong:[response expectedContentLength]];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{

    [receivedData appendData:data];

    NSNumber *resourceLength = [NSNumber numberWithUnsignedInteger:[receivedData length]];
    NSLog(@"resourceData length: %d ", [resourceLength intValue]);


    NSNumber *progress = [NSNumber numberWithFloat:([resourceLength floatValue] / [FileSize floatValue])];
    updateProgressBar.progress = [progress floatValue];
}

当它与FileSize到达该行时,其崩溃

2010-10-05 22:32:19.924古兰经[2067:207]资源数据长度:1090 程序接收信号:“EXC_BAD_ACCESS”。

1 个答案:

答案 0 :(得分:3)

我相信FileSize = [NSNumber numberWithLongLong:[response expectedContentLength]];正在给你一个自动释放的NSNumber,你需要保留在某个地方。也许你在代码中的其他地方这样做,但这可能是你获得EXC_BAD_ACCESS的地方。