什么是强者和保留者之间的区别?

时间:2012-10-21 10:40:43

标签: objective-c ios

  

可能重复:
  what is the difference between strong (in LLVM) and retain( in GCC)?

我随处可见我们可以使用强大的属性而不是保留在最新的对象c编程中。但是,我想知道强者和留住者之间的差异有多大,而且强势优于保留的优势是什么,因此Apple发布了强大的优势。

谢谢!

1 个答案:

答案 0 :(得分:2)

它对ARC和非ARC项目的工作方式完全是语义上的(afaik)。 Apple希望每个人都使用ARC,并且正朝着这个方向努力。

在非ARC项目中,“strong”将充当“保留”。在ARC项目中,如果clang没有标记错误(我不使用ARC),“retain”可能会起作用,但在描述中是一个微妙的。

保留说 - 我坚持这个对象,直到我准备释放它,强者说(嘿ARC将此视为保留对象并在我的dealloc方法中插入一些生成的代码,以便在自动释放池耗尽时释放)。

据我所知,这是唯一的区别,它的概念,如果你在快乐的ARC土地,你不应该真的关心,除非它破坏:(