Ich arbeite an einer iOS-App und habe einige Probleme mit einer HTTP-Anfrage mit AFNetworking.AFNetworking EXC_BAD_ACCESS in setCompletionBlock
Wenn ich den Code ausführen, erhalte ich den Fehler: EXC_BAD_ACCESS (Code = 2 Adresse = 0x0). Der Fehler tritt auf, wenn ich versuche, CompletionBlock zu setzen.
Ich bin neu in Objective-C und das hat mich ratlos.
Vielen Dank im Voraus. Jedermanns Hilfe wird geschätzt!
#import "AFNetworking.h"
#import <Cordova/CDV.h>
#import "UploadImg.h"
@implementation UploadImg
- (void) uploadImg:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options{
NSURL *url = [NSURL URLWithString:@"http://test.com/mobile/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *imageData = [NSData dataFromBase64String:[arguments objectAtIndex:1]];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:@"TEST_STYLE" forKey:@"styleType"];
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload.php" parameters:params constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
[formData appendPartWithFileData:imageData name:@"imageName" fileName:@"image.png" mimeType:@"image/png"];
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"success");
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error");
}];
[operation start];
}
@end
Nochmals vielen Dank!
Hallo Mattt, vielen Dank für die Beantwortung. Ich habe einen Screenshot hinzugefügt, bitte lassen Sie mich wissen, wenn ich an der falschen Stelle nach dem Stack-Trace suche. Dies ist der native Teil eines Plugins, an dem ich gerade arbeite, für eine phonegap/cordova App. So wird es von einer Javascript-Datei aufgerufen und ich gebe ein base64-codiertes PNG als zweites Argument ein. Danke, dass Sie sich die Zeit genommen haben, um zu helfen! – kevinstueber
Aus Neugierde habe ich die Base64-Bildzeichenfolge fest programmiert, anstatt sie aus den Methodenargumenten zu bekommen, und habe den gleichen Fehler bekommen. Wenn ich den Abschnitt 'operation setCompletionBlock ... 'auskommentiere, tritt der Fehler nicht auf ... – kevinstueber