我知道ARC中的实例变量默认是__strong。当包含类仍然保留时,如何释放实例变量。在以下示例中,v__strong
在A对象的某个位置创建并保留时分配c。我要释放c实例变量。我该怎么做?,将释放releaseC实例变量的c方法中应该包含什么。

@interface A {
  Obj *c;
}

@implementation A {

 - (id)init {
   if((self = [super init])){
     c = [[Obj alloc] init];
   }
   return self;
 }

 - (void)releaseC {
  //what should be here?
 }

}

最佳答案

Obj *c; = [[Obj alloc] init];

- (void)releaseC {
c = nil;
}

您无法直接控制何时释放对象,但可以间接导致它发生。怎么样?记住ARC的确切作用。与人工编码约定不同,ARC会在对象可以被释放时尽快解析您的代码并插入释放语句。这样可以立即释放内存以供新分配,这是很棒/必要的。意思是,将对象设置为nil,或者只是允许变量超出范围……导致0 RETAIN COUNT的原因迫使ARC在此处进行释放调用。它必须...,否则会泄漏。

关于ios - 如何在ARC中释放实例变量-Objective-C,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17057680/

10-16 11:21