当进行子类化时,我倾向于为我的所有属性提供属性(非原子的,强的),除了IBOutlet,当不是nib中的顶级对象时,它们是(非原子的,弱的)。
是否存在这种习惯可能不安全,并产生保留循环或产生其他负面影响的情况?
谢谢。
答案 0 :(得分:1)
对于NSStrings,您应该使用(非原子,复制)。
答案 1 :(得分:1)
是的,这种习惯可能不安全,因为你似乎并没有真正遵循属性赋予的规则。
正确的方法是考虑如何使用该属性并为其提供相应的属性。
可能出现问题的一些情况是:
非常快速的指南:
如果该属性主要属于该类,即使该类可能共享它:strong 该类需要使用该属性:强大(但不要忘记在不再需要它时指针为零) 如果此属性属于另一个类:weak 代表:弱者 IBOutlets:弱
对于并发属性,通常可以使用非原子属性,除非您知道该属性可能被多个线程使用,然后将其设置为原子。
这只是一个非常模糊的指南,但在ARC下很适合我。