首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当接口中有**时,Xcode放入__autorelease

当接口中有**时,Xcode放入__autorelease
EN

Stack Overflow用户
提问于 2012-08-05 02:24:24
回答 1查看 502关注 0票数 3

可能重复: autoreleasing ownership qualifier under ARC?

在接口中创建此方法:

代码语言:javascript
复制
- (NSArray *)questionsFromJSON:(NSString *)jsonString 
                     withError:(NSError **)error;

当在实现中跳出自动完成时,它将添加以下内容:

代码语言:javascript
复制
- (NSArray *)questionsFromJSON:(NSString *)jsonString withError:(NSError *__autoreleasing *)error

我认为ARC从来不需要使用自动发布,但我猜这是不同的,因为它在ARC中编译得很好。

只是好奇:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-05 03:52:06

自动释放在ARC中被广泛使用。你只是没看到到处都是关键字。

站点的示例是当您向对象指针发送指针时,就像典型的错误场景一样.

代码语言:javascript
复制
NSError *error = nil; if (![foo bar:&error]) {
    // handle error
}

注意,bar方法会做一些类似.

代码语言:javascript
复制
- (void)bar:(NSError **errorPtr) {
    // blah...
    if (an_error_happened) {
        NSError *error = [NSError muckityMuck];
        *errorPtr = error;
    }
}

现在,错误对象已经被分配,并像函数调用中的自动释放一样“返回”。当您声明s函数/方法为"**“时,您是在隐式地声明__autorelease。

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

https://stackoverflow.com/questions/11813507

复制
相关文章

相似问题

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