首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios NSError类型

ios NSError类型
EN

Stack Overflow用户
提问于 2012-02-08 23:15:03
回答 2查看 2.6K关注 0票数 5

自从我添加了这个异步请求后,我得到了一个Sending 'NSError *const __strong *' to parameter of type 'NSError *__autoreleasing *' changes retain/release properties of pointer的xcode错误

代码语言:javascript
复制
...
[NSURLConnection sendAsynchronousRequest:req queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
    dispatch_async(dispatch_get_main_queue(), ^{
        NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLData:data error:&error];
        ...
    });
}];
...

如果我使用error:nil,那么我的代码运行良好,但我对不使用错误感到不安。我该怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-08 23:58:12

这大概是因为您在重用在完成处理程序中传递给您的error。它将作为__strong传递,然后将它传递到需要为__autoreleasing的位置。尝试更改为以下代码:

代码语言:javascript
复制
...
[NSURLConnection sendAsynchronousRequest:req queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
    dispatch_async(dispatch_get_main_queue(), ^{
        NSError *error2 = nil;
        NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLData:data error:&error2];
        ...
    });
}];
...
票数 11
EN

Stack Overflow用户

发布于 2015-12-17 11:45:02

当将NSError *error=nil;定义放在^块的之外时,就会发生这个Xcode错误。

在这个块中,error:&error工作得很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9203044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档