我正在使用iOS应用,并且在使用AFNetworking发出http请求时遇到了一些麻烦。
当我运行代码时,我收到错误:EXC_BAD_ACCESS(code = 2 address = 0x0)。 我尝试setCompletionBlock时发生错误。
我是Objective-C的新手,这让我很难过。
提前谢谢你。感谢每个人的帮助!
#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
再次感谢!
答案 0 :(得分:6)
我能够通过更改构建设置来解决这个问题。
在链接标题下更改“其他链接器标志”,单击-weak_library的条目并将其替换为-weak-lSystem
问题:Use of Blocks crashes app in iPhone Simulator 4.3/XCode 4.2 and 4.0.2
答案 1 :(得分:1)
欢迎来到Objective-C的有趣世界,@ kev_addict!
当你得到EXC_BAD_ACCESS
异常时,有助于获取详细信息,以查看违规呼叫的堆栈跟踪情况。
在没有任何其他信息的情况下,我的直觉告诉我,您的问题在于您从阵列获取图像数据的方式。有没有理由不让这个方法采用UIImage
参数?期望这个方法采用一个期望图像数据的数组似乎很奇怪 - 在第二个位置,不能少。