属性属性

时间:2012-07-19 23:35:25

标签: ios properties attributes subclass

当进行子类化时,我倾向于为我的所有属性提供属性(非原子的,强的),除了IBOutlet,当不是nib中的顶级对象时,它们是(非原子的,弱的)。

是否存在这种习惯可能不安全,并产生保留循环或产生其他负面影响的情况?

谢谢。

2 个答案:

答案 0 :(得分:1)

对于NSStrings,您应该使用(非原子,复制)。

答案 1 :(得分:1)

是的,这种习惯可能不安全,因为你似乎并没有真正遵循属性赋予的规则。

正确的方法是考虑如何使用该属性并为其提供相应的属性。

可能出现问题的一些情况是:

  • 代表:保留周期。
  • 内存管理:两个类之间共享的图像无法再使用,您必须在两个类上都无法使用。
  • threads:多个线程将访问的属性。

非常快速的指南:

如果该属性主要属于该类,即使该类可能共享它:strong 该类需要使用该属性:强大(但不要忘记在不再需要它时指针为零) 如果此属性属于另一个类:weak 代表:弱者 IBOutlets:弱

对于并发属性,通常可以使用非原子属性,除非您知道该属性可能被多个线程使用,然后将其设置为原子。

这只是一个非常模糊的指南,但在ARC下很适合我。