objective-c - 执行异步 URL 请求后的 EXC_BAD_ACCESS

标签 objective-c cocoa nsurlconnection osx-mountain-lion xcode4.5

我正在尝试执行异步 URL 请求:

    NSURLRequest* request=[NSURLRequest requestWithURL: [NSURL URLWithString: @"http://www.youtube.com/"]];
    NSOperation* operation=[NSOperation new];
    NSOperationQueue* queue=[NSOperationQueue new];
    [operation setCompletionBlock: ^()
     {
     }];
    [queue addOperation: operation];
    [NSURLConnection sendAsynchronousRequest: request queue: queue completionHandler: ^(NSURLResponse* response, NSData* data, NSError* error)
    {
        NSLog(@"%@",[data bytes]);
    }];

所以我只需要 URL 中包含的数据。但是几秒钟后(可能是新创建的线程加载数据的时间)应用程序崩溃了:

thread 6 : EXC_BAD_ACCESS (code=13, address=0x0)

当我尝试打印数据字节时,确切的点是 NSLog 行中的 objc_msgSend_vtable5。 PS:我使用的是ARC。

最佳答案

问题在于方法 -[NSData bytes] 具有返回类型 void * (并且是指向原始字节缓冲区的指针),但您正在处理通过尝试使用 %@ format specifier 记录返回值作为对象。要解决此问题,只需打印 data 而不是 [data bytes];更换您的线路

NSLog(@"%@", [data bytes]);

NSLog(@"%@", data);

关于objective-c - 执行异步 URL 请求后的 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280615/

相关文章:

iphone - 通过 URL 发送 JSON NSData

objective-c - 隐藏 NSTableView header ?

php - NSURLConnection 连接到服务器,但不发布数据

ios - 什么是 [__NSCFString base64String] : unrecognized selector sent to instance?

ios - 销毁带有烟雾效果的uiimage View

ios - IOS Native 中的 Worklight Adapter 调用传递 JSON 参数

iOS Xcode : UIButton titleLabel color keeps changing

cocoa - 如何通过编程更改 NSTextView 的文本值来实现撤消/重做?

iphone - 来自多个方法的 NSURLConnection 请求 - 获取启动方法的回调

ios - NSURLRequest 下载,NSFileManager 看不到