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