gpt4 book ai didi

objective-c - 静态指针是强指针吗?

转载 作者:太空狗 更新时间:2023-10-30 03:28:24 24 4
gpt4 key购买 nike

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

static ClassA* shared;

-(id)init
{
if (self=[super init]) {
shared=self;
}
return self;
}

最佳答案

是的,一旦分配,您就可以依赖它。

Transitioning to ARC Release Notes状态:

Under ARC, strong is the default for object types.

然后:

__strong is the default. An object remains “alive” as long as there is a strong pointer to it.

鉴于您的 static 指针引用了该对象,它将保持“事件”状态。指针的范围(无论是全局的、堆栈上的指针还是实例变量)都没有区别。

关于objective-c - 静态指针是强指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com