首先是代码和输出结果:
NSString *text = @"Sunny";
__weak NSString *string0 = text.lowercaseString;
__weak NSString *string1;
string1 = text.lowercaseString;
NSLog(@"%@, %@", string0, string1);
输出:
(null), sunny
但是当我将 string1
的声明放在 text
上面时,输出结果就不同了。以下是代码:
__weak NSString *string1;
NSString *text = @"Sunny";
__weak NSString *string0 = text.lowercaseString;
string1 = text.lowercaseString;
NSLog(@"%@, %@", string0, string1);
输出:
sunny, sunny
我对不同的输出非常困惑:
- 为什么在第一个例子中,
string0
和string1
是不同的? - 为什么第二个例子的输出与第一个例子不同?
null
。 - Gandalf