我使用了以下代码
- (void)viewDidLoad {
[super viewDidLoad];
NSString *string=@"String";
self.strongStr=string;
self.weakStr=string;
self.strongStr=nil;
NSLog(@"%@",self.weakStr);}
运行弱字符串的值应为nil但是打印" String"。我需要一个Prniting值的工作示例,这样我才能知道强弱参考会发生了什么
答案 0 :(得分:0)
弱引用表示您不想控制对象的生命周期。您引用弱的对象只会继续存在,因为至少有一个其他对象对它有强烈的引用。一旦不再是这种情况,对象就会被破坏,你的弱属性将自动设置为nil。
请仔细阅读{{3}}以了解更多信息。
答案 1 :(得分:0)
弱意味着你不拥有该对象。 强意味着你拥有那个对象。
强引用意味着您正在引用此属性/变量。只要您(或任何其他对象)使用强引用指向它,编译器就会注意您分配给此属性的任何对象都不会被销毁。只有将属性设置为nil后,对象才会被销毁(除非一个或多个其他对象也拥有对它的强引用)。
弱参考意味着您表示您不想控制对象的生命周期。您引用弱的对象只会继续存在,因为至少有一个其他对象对它有强烈的引用。一旦不再是这种情况,对象就会被破坏,你的弱属性将自动设置为nil。