gpt4 book ai didi

ios - 属性属性

转载 作者:行者123 更新时间:2023-11-28 22:52:37 24 4
gpt4 key购买 nike

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

是否存在这样的习惯不安全、会产生保留循环或产生其他此类负面影响的情况?

谢谢。

最佳答案

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

正确的做法是考虑属性将如何使用,并赋予它相应的属性。

一些可能出错的情况是:

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

一个非常快速的指南:

如果该属性主要属于该类,即使该类可能共享它:strong该类需要该属性才能工作:strong(但不要忘记在不再需要时将指针设为 nil)如果此属性属于另一个类:weak代表:弱IBOutlets:弱

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

这只是一个非常模糊的指南,但在 ARC 下对我来说效果很好。

关于ios - 属性属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11570838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com