1

我正在开发一个 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

在此处输入图像描述

再次感谢!

4

2 回答 2

6

我能够通过更改构建设置来解决这个问题。

在链接标题下更改“其他链接器标志”,单击 -weak_library 条目并将其替换为 -weak-lSystem

来自问题:在 iPhone Simulator 4.3/XCode 4.2 和 4.0.2 中使用 Blocks 崩溃应用程序

于 2012-05-31T14:06:36.737 回答
1

欢迎来到有趣的 Objective-C 世界,@kev_addict!

当您遇到EXC_BAD_ACCESS异常时,了解详细信息会有所帮助,以查看有问题的调用的堆栈跟踪是什么样的。

没有任何额外的信息,我的直觉告诉我你的问题在于你从数组中获取图像数据的方式。有什么理由不让这种方法UIImage争论吗?期望这个方法接受一个需要图像数据的数组似乎很奇怪——在第二个位置,不少于。

于 2012-04-08T23:54:39.453 回答