【发布时间】:2018-10-12 08:39:54
【问题描述】:
我有一个简单的问题。如果我声明 NSString (ref type) 如下所示:
NSString *johnsMoney = @"200";
NSString *marysMoney = johnsMoney;
NSLog(@"Johns Money %@",johnsMoney);
NSLog(@"Marys Money %@",marysMoney);
johnsMoney = @"100";
NSLog(@"Johns Money %@",johnsMoney);
NSLog(@"Marys Money %@",marysMoney);
产生的输出是这样的:
Johns Money 200
Marys Money 200
Johns Money 100
Marys Money 200
根据我的理解,当我将 @"100" 分配给 johnsMoney 时,它是否也不会将“marysMoney”的值更改为 100,因为 marysMoney 指向 johnsMoney。
更新:
我相信以下示例显示了我最初尝试做的事情:
Dog *dog1 = [[Dog alloc] init];
dog1.name = @"Dog 1";
Dog *dog2 = dog1;
NSLog(@"Dog 1 %@",dog1.name);
NSLog(@"Dog 2 %@",dog2.name);
dog1.name = @"Dog 3";
NSLog(@"Dog 1 %@",dog1.name);
NSLog(@"Dog 2 %@",dog2.name);
【问题讨论】:
-
stackoverflow.com/a/16460928 我猜这个答案将消除疑问。
标签: objective-c