Ios 属性的弱属性在弧中实际释放的时间。如何防止它被释放。想找个例子吗

Ios 属性的弱属性在弧中实际释放的时间。如何防止它被释放。想找个例子吗,ios,objective-c,memory-management,Ios,Objective C,Memory Management,我已经知道什么时候该对象没有强引用。但有谁能举个例子。只有弱引用的对象将在最近的时候被释放 在本主题中,前面已经说过: 强引用(在大多数情况下您将使用)意味着您 想要“拥有”您正在引用的对象吗 属性/变量。编译器将注意 只要您(或 (任何其他对象)指向它,并带有强引用。只有一次你 如果将属性设置为nil,对象将被销毁(除非有一个或多个 更多的其他对象也具有对它的强引用) 相比之下,使用弱引用表示您不想这样做 控制对象的生存期。你是什么对象 弱引用仅存在,因为至少有一个其他对象 对它有很强的参考

我已经知道什么时候该对象没有强引用。但有谁能举个例子。

只有弱引用的对象将在最近的时候被释放

在本主题中,前面已经说过:

强引用(在大多数情况下您将使用)意味着您 想要“拥有”您正在引用的对象吗 属性/变量。编译器将注意 只要您(或 (任何其他对象)指向它,并带有强引用。只有一次你 如果将属性设置为nil,对象将被销毁(除非有一个或多个 更多的其他对象也具有对它的强引用)

相比之下,使用弱引用表示您不想这样做 控制对象的生存期。你是什么对象 弱引用仅存在,因为至少有一个其他对象 对它有很强的参考价值。一旦情况不再如此,那么 对象被销毁,您的弱属性将自动 设置为零。iOS中最常见的弱引用用例有:

委托属性,这些属性通常被弱引用以避免保留 周期,以及

视图控制器主视图的子视图/控件,因为这些视图 已经被主流观点强烈地持有

原子与非原子是指getter和 编译器为属性合成的setter方法。原子的 (默认值)告诉编译器生成访问器方法 线程安全(通过在访问ivar之前添加锁)和 非原子则相反。非原子化合物的优点是 更高的性能。在iOS上,苹果几乎所有的产品都使用非原子 因此,一般建议您也这样做

你应该做一个强有力的参考,可能是这样的:

@property (strong) NSNumber myNumber;

阅读文档:“如何防止它被解除分配?”你只需在某个地方保留对它的有力引用。这就是
的目的,当其他地方没有强引用时,不要抓住它。这个问题没有意义。也许可以给我们一个实际的例子,说明您在想象这种情况出现时的情形。假设我创建了一个NSStringAssociation NSMutableString属性,假设现在我已经完成了self.myproperty=@“testString”;直到self.myproperty将打印值“testString”。在这种情况下,当您的示例中被视为“self”的对象被释放时,打印将停止工作,因为字符串是“self”对象的直接属性。NSString也是如此。也许再想想你的问题,写得更准确些?因为我很难理解它,它会让更多的人尝试帮助你。写下你想做的事情。我的问题是,什么时候将是一个薄弱的财产得到确定。如果从创建时起就没有强引用。