【发布时间】:2014-11-06 07:16:13
【问题描述】:
这可能是一个基本问题,但我仍然不清楚。
第一个实例:我将在头文件中声明一个字符串为弱字符串。
@property(weak)NSString *string1;
@synthesize string1;
然后在我的 viewDidLoad 方法中,我会给它分配一些虚拟文本...比如 string1=@"hello world";
- (void)viewDidLoad
{
[super viewDidLoad];
string1=[NSString stringWithFormat:@"hello world"];
}
然后在 viewDidAppear 方法中我将打印string1 的值
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"%@",string1);
//It gives me 'null'(remember string1 is of weak property )
}
第二个实例:对于相同的字符串1(弱),我将以不同的方式为其分配相同的文本。
- (void)viewDidLoad
{
[super viewDidLoad];
string1=@"hello world";
}
然后在 viewDidAppear 方法中我将打印string1 的值
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"%@",string1);
//It prints 'hello world'
}
这里出了什么问题?...是 ARC 问题还是缺乏基本知识...任何关于此的进一步解释将不胜感激。
【问题讨论】:
-
这已经被问过了。基本上常量字符串与在运行时构造的
NSString实例有不同的内存要求。
标签: objective-c ios7 memory-management nsstring automatic-ref-counting