当我不将自身分配给它的超级初始化,而是分配给完全不同的指针,甚至是静态指针时,有什么含义吗?电弧会正确运行吗?这种行动有什么意义?
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会引起混乱,因为其他人可能持有对该对象的引用。