静态指针是强指针吗?

lyn*_*ard 9 objective-c

在objective-c中,我知道静态变量(应该?)在程序的生命周期内保留其值.但是,如果它存储的指针,它算不算的ARC?我可以依赖它并确保一旦我将它分配给静态变量,该实例永远不会出局吗?

static ClassA* shared;

-(id)init
{
   if (self=[super init]) {
       shared=self;
   }
   return self;
}
Run Code Online (Sandbox Code Playgroud)

tro*_*foe 15

是的,一旦分配,你就可以依赖它.

过渡到ARC发行说明状态:

在ARC下,strong是对象类型的默认值.

然后:

__strong是默认值.只要存在指向它的强指针,对象就会保持"活着".

如果你的static指针引用了对象,它将保持"活着".指针的范围(无论是全局,堆栈上的指针还是实例变量)都没有区别.