在我的头文件中,我声明了一个像这样的新属性:
@property (weak, nonatomic) NSString *porperty;
在我的实现文件中,我给属性赋值:
-method1{
self.property = someString;
NSLog(@"property = %@", self.property);
}
日志在调试器中显示为someString的相同值。好的,但是当我尝试在同一个实现文件的下一个方法中使用这个属性时,它会失去它的价值。
-method2{
NSLog(@"property = %@", self.property);
}
现在调试器说(null)。
简单的问题。我知道,但这通常适合我。我做错了什么?
答案 0 :(得分:4)
这是因为someString已在下一个周期发布。 用强力替换弱,这将保留你的字符串。
@property(强,非原子)NSString * porperty;