Je reçois un Program received signal: “EXC_BAD_ACCESS”.
lorsque j'utilise le code suivant.Objectif-C - Signal reçu du programme: "EXC_BAD_ACCESS". avec (NSNumber floatValue)
searchResultFileSize
est déclaré comme NSNumber
dans mon interface. Je n'étais pas sûr de quelle propriété le définir. Actuellement, je l'ai comme:
@property (nonatomic, readonly) NSNumber *searchResultFileSize;
Est-ce correct? Je reçois les erreurs sur les lignes suivantes:
NSLog(@"float filesize: %f", [searchResultFileSize floatValue]); //Program received signal: “EXC_BAD_ACCESS”.
HUD.progress = [resourceLength floatValue]/[searchResultFileSize floatValue]; //Program received signal: “EXC_BAD_ACCESS”.
Si je commente la première ligne, il échoue toujours sur la seconde. Des idées quel pourrait être le problème? Peut-être que mes conversions sont fausses. Voici les deux méthodes où je me sers de ce morceau de code:
- (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]);
}
Ou, mieux encore: 'NSLog (@" filesize :% @ ", searchResultFileSize);' –
..et que diriez-vous de faire la division sur HUD.progress? – fuzz
Selon la reco de Jacob, il suffit de conserver NSNumber et tout ira bien. – Rog