次のコードを使用するとProgram received signal: “EXC_BAD_ACCESS”.
が表示されます。Objective-C - プログラム受信信号: "EXC_BAD_ACCESS"。 with(NSNumber floatValue)
searchResultFileSize
は、私のインターフェイスでNSNumber
と宣言されています。私はどのようなプロパティを設定するか分からなかった。現在、私はそれを持っています:
@property (nonatomic, readonly) NSNumber *searchResultFileSize;
これは間違いありませんか?
NSLog(@"float filesize: %f", [searchResultFileSize floatValue]); //Program received signal: “EXC_BAD_ACCESS”.
HUD.progress = [resourceLength floatValue]/[searchResultFileSize floatValue]; //Program received signal: “EXC_BAD_ACCESS”.
私が最初の行をコメントアウトしても、2番目の行では明らかに失敗します。どのような問題が起こる可能性がありますか?おそらく私の変換は間違っているでしょう。ここで私は、コードのこの部分を使用しています2つの方法です:あなたの問題はここにある
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[responseData setLength:0];
searchResultFileSize = [NSNumber numberWithLongLong:[response expectedContentLength]];
NSLog(@"Float filesize: %f", searchResultFileSize);
if ([searchResultFileSize intValue] != NSURLResponseUnknownLength) {
HUD.mode = MBProgressHUDModeDeterminate;
HUD.labelText = @"Getting Results";
}
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[responseData appendData:data];
NSNumber *resourceLength = [NSNumber numberWithUnsignedInteger:[responseData length]];
NSLog(@"resourceData length: %d", [resourceLength intValue]);
NSLog(@"filesize: %d", searchResultFileSize);
NSLog(@"float filesize: %f", [searchResultFileSize floatValue]); //Program received signal: “EXC_BAD_ACCESS”.
// HUD.progress is a float
HUD.progress = [resourceLength floatValue]/[searchResultFileSize floatValue]; //Program received signal: “EXC_BAD_ACCESS”.
NSLog(@"progress: %f", [resourceLength floatValue]/[searchResultFileSize floatValue]);
}
または、さらに良い: 'のNSLog(@"ファイルサイズを:%@ "、searchResultFileSize); ' –
..そしてHUDの進捗状況についてはどうしたらいいですか? – fuzz
Jacobのrecoによれば、NSNumberをそのまま残してください。あなたは問題ありません。 – Rog