当我不将 self 分配给它的 super init 而是分配给一个完全不同的指针(甚至是静态指针)时,是否有任何暗示? arc 会正常运行吗?这样的行动会产生什么影响?
static NSObject * StaticObject;
- (instancetype)init {
self = StaticObject;
if (self) {
}
return self;
}
最佳答案
ARC 表现得很好。初始化 StaticObject 时会遇到问题。你可以做类似的事情
if (StaticObject == nil) {
self = [super init];
StaticObject = self;
} else {
self = StaticObject;
}
我认为 NSNull 类会做类似的事情。
假设 StaticObject 不为 nil 并且已初始化,如果您修改 StaticObject,将会引起困惑,因为其他人可能持有对它的引用。
关于objective-c - 将 init 中的 self 分配给不同的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40180139/