小编web*_*ogs的帖子

ObjectiveC:使用NSString和__weak与ARC时的奇怪行为

第一个代码和输出:

NSString *text = @"Sunny";
__weak NSString *string0 = text.lowercaseString;
__weak NSString *string1;
string1 = text.lowercaseString;

NSLog(@"%@, %@", string0, string1);
Run Code Online (Sandbox Code Playgroud)

输出:

(null), sunny
Run Code Online (Sandbox Code Playgroud)

但是在我移动string1上面的声明后text,输出是不同的.这是代码:

__weak NSString *string1;
NSString *text = @"Sunny";
__weak NSString *string0 = text.lowercaseString;
string1 = text.lowercaseString;

NSLog(@"%@, %@", string0, string1);
Run Code Online (Sandbox Code Playgroud)

输出:

sunny, sunny
Run Code Online (Sandbox Code Playgroud)

我对不同的输出很困惑:

  • 为什么string0string1第一种情况有所不同?
  • 为什么第二种情况的输出与第一种情况不同?

objective-c ios

6
推荐指数
1
解决办法
134
查看次数

标签 统计

ios ×1

objective-c ×1