如何使用公共只读属性通过 ARC 释放内存?假设我有以下代码:
SomeClass.h:
@interface SomeClass : NSObject
@property (readonly, nonatomic, strong) NSArray* someArray;
@end
SomeClass.m:
#import "SomeClass.h"
@implmentation SomeClass
@synthesize someArray = _someArray;
- (void)dealloc {
self.someArray = nil; //causes compiler error because of public readonly
_someArray = nil; //does this correctly release the object?
}
@end
据我了解,您在 ARC 中解除分配的方式是使用 getter 方法将所有强属性设置为 nil。由于该变量被公开声明为“只读”,因此编译器将不允许使用 getter 方法。根据我对 ARC 的了解,将 iVar 设置为 nil 确实会在底层代码中调用 release。这个对吗?
谢谢您的帮助!