首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'myObj =[MyClass alloc] init] autorelease] retain];‘的效果?

'myObj =[MyClass alloc] init] autorelease] retain];‘的效果?
EN

Stack Overflow用户
提问于 2010-09-01 04:03:42
回答 1查看 1.6K关注 0票数 6

我刚刚下载了Facebook iOS SDK,我注意到,在SDK附带的示例代码中,无论何时创建Facebook类的实例,它都是这样做的:

代码语言:javascript
复制
_facebook = [[[[Facebook alloc] init] autorelease] retain];

其中_facebook是调用对象的成员变量(即不是局部变量)。

有没有人能确切地解释一下自动释放并保留它的意义?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-01 04:21:48

除了消耗一些周期和内存之外,它实际上什么也做不了。

或者,更准确地说,在正确编写的应用程序中,它什么也不做。在不正确编写的应用程序中,它可能会通过延长_facebook对象的生命周期来掩盖错误。然而,这并不是一个真正的修复方法。

我在http://github.com/facebook/facebook-ios-sdk/blob/master/sample/DemoApp/Classes/DemoAppViewController.m中找到了类似的代码行,如果这就是你所指的,那么,是的,这是胡说八道。

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

https://stackoverflow.com/questions/3612763

复制
相关文章

相似问题

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