4
 __weak NSString *strin = [[NSString alloc] initWithFormat:@"hey"] ;

    NSLog(@"weak %@",strin); //returns weak (null)

__weak NSString *strin =@"hey";

NSLog(@"weak %@",strin); //returns weak hey

这两个片段有什么区别。为什么第二个在分配弱时返回值?

4

2 回答 2

4

这是因为它@"hey"是一个常量字符串文字,它将永远存在,而对第一个(分配的)字符串的弱引用不足以使其保持活动状态。

于 2013-06-12T12:19:44.597 回答
1

检查下面的快照,您将自己得到答案。

在此处输入图像描述

于 2013-06-12T12:33:14.607 回答