【发布时间】:2017-05-12 04:23:39
【问题描述】:
我有一个 NSString 属性较弱的视图控制器
@property (nonatomic, weak) NSString *weakString;
在 viewDidLoad 我初始化如下
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_weakString = @"i am weak";
}
据我了解,weak 属性可能会在任何时候被释放,这样声明具有 weak 属性的属性是否安全? 当我这样做时,
_weakString = [NSString alloc]init];
编译器警告我将保留对象分配给弱变量,分配后对象将被释放。为什么编译器会给出这个警告?以及为什么编译器在将字符串文字分配给我的弱 NSString 属性时不发出警告。任何帮助将不胜感激。谢谢。
【问题讨论】: