在子类化时,我倾向于为我的所有属性赋予属性(非原子,强),除了IBOutlet,当不是nib中的顶级对象时,它是(非原子,弱)。
是否有这样的习惯可能是不安全的,并造成保留循环或具有其他此类负面影响的情况?
谢谢。
发布于 2012-07-20 08:19:52
是的,这个习惯可能是不安全的,因为你似乎并没有真正遵循属性给定的规则。
要做到这一点,正确的方法是考虑如何使用属性,并为其提供相应的属性。
在某些情况下,这可能会出错:
给你一个非常快速的指南:
如果属性主要属于类,即使类可能共享它: strong类需要该属性才能工作: strong (但不要忘记在不再需要指针时将指针设为空)如果该属性属于另一个类:弱委托:弱IBOutlets:弱
对于并发属性,您通常可以使用非原子属性,除非您知道该属性可能被多个线程使用,然后将其设置为原子属性。
这只是一个非常模糊的指南,但在ARC下对我来说工作得很好。
发布于 2012-07-20 07:46:17
对于NSStrings,您应该使用(非原子,复制)。
https://stackoverflow.com/questions/11570838
复制相似问题