0

我可以在启用 ARC 的项目中代替 self 的等效关键字是什么?例如:-[self mymethod]; 此方法调用的 ARC 等价物是什么?

4

3 回答 3

5

我不太明白?为什么 ARC 应该有不同的方法调用语法?它是一种自动内存管理,在大多数情况下您不需要使用保留/释放,仅此而已。所以它看起来像这样:

[self mymethod];
于 2012-06-25T10:08:13.240 回答
1

在 ARC(Automatic Reference Counting) 中,你不需要释放或保留。它与调用方法无关!

ARC - Automatic Reference Counting 实现了 Objective-C 对象和块的自动内存管理,将程序员从显式插入保留和释放的需要中解放出来。由于这是在编译时处理的,因此不需要收集器进程不断清除内存并删除未引用的对象。

为了调用一个方法,你仍然这样做:[self mymethod];

于 2012-06-25T10:09:49.800 回答
0

还是一样

[self myMethod];

但是在 ARC 环境 IIRC 中,您需要这样做:(我不知道这是否是您问题的来源,但是当我第一次迁移到 ARC 时,如果我不这样做,我会收到编译错误这)。

@interface myController()
- (void)myMethod; // you need to declare the method here, if you haven't declared it on the .h
@end

@implementation

- (void)viewDidLoad
{
  [super viewDidLoad];
  [self myMethod];
}

- (void)myMethod
{
  NSLog(@"!");
}

@end

希望这有帮助

于 2012-06-25T10:14:25.187 回答