加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:23:25 所属栏目:百科 来源:网络整理
导读:在目标c中,我知道静态变量(应该?)在程序的生存期内保留其值.但是如果它存储一个指针,它在ARC中是否很强?我可以依赖它,并确保在将它分配给静态变量后,该实例永远不会出现在堆中? static ClassA* shared;-(id)init{ if (self=[super init]) { shared=self;
在目标c中,我知道静态变量(应该?)在程序的生存期内保留其值.但是如果它存储一个指针,它在ARC中是否很强?我可以依赖它,并确保在将它分配给静态变量后,该实例永远不会出现在堆中?
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.

给定静态指针引用对象,它将保持“活着”.指针的范围(无论是全局的,堆栈上的指针还是实例变量)都没有区别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读