objective-c - 使用 arc 退出对象的初始化?

标签 objective-c automatic-ref-counting

如何避免使用 ARC 创建对象?

我正在寻找与此等效的 ARC(来自内存):

- (id)init
{
     if (( self = [super init] )) {
         if (!condition) {
             [self release];
             self = nil;
             return self;
         }
     }
     return self;
 }

最佳答案

只需摆脱对 release 的调用,就可以了。由于你 nil self,将不再有对旧 self 的引用,因此它将被释放。

- (id)init;
{
     if ((self = [super init])) {
         if (!condition) {
             return nil;
         }
     }
     return self;
 }

关于objective-c - 使用 arc 退出对象的初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9469903/

相关文章:

ios - 我们在 ARC 中创建对象的这两种方式有什么区别吗?

objective-c - 如何在 ARC 下将 objective c 对象的地址获取到 void * volatile * 中?

objective-c - 尽管导入了正确的 header ,但使用自定义类的编译器错误

objective-c - 来自 UIModalTransitionStylePartialCurl viewController 的 presentModalViewController

iphone - 在 iOS 的 UITableView 中包装文本

ios - 拍摄和显示照片的应用程序内存错误

loops - ARC 似乎过度释放了在循环中创建和调度的 block 中引用的对象

ios - 如何使用自动引用计数(ARC)?

iphone - 从核心图形中的路径中删除形状

objective-c - 我们是否必须保留非 ARC 中方法返回的对象?