iphone - 'myObj = [[[[MyClass alloc] init] autorelease] retain];' 的影响?

标签 iphone objective-c facebook memory-management

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

_facebook = [[[[Facebook alloc] init] autorelease] retain];

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

谁能准确解释自动释放然后保留它的意义是什么?

最佳答案

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

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

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

关于iphone - 'myObj = [[[[MyClass alloc] init] autorelease] retain];' 的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3612763/

相关文章:

ios - 阻止卡住我的应用程序

iphone - 找出哪个实体发生了变化(NSManagedObjectContextObjectsDidChangeNotification)

php - Facebook API - 如何邀请用户加入群组?

facebook - 如何将 Facebook onelogin 事件绑定(bind)到自定义按钮?

Iphone Http请求响应使用json

iphone - 在 init 方法中传递值

ios - 添加/删除对象到可变数组

javascript - 检测 Facebook session 的变化

iPhone 应用程序 : How to implement horizontal knob as shown in image

objective-c - UITableView 不要 float 部分标题