实例。换句话说,它们是同一个实例的两种叫法。
查看得知instanceDog的age也变为了10。
Swift 中,许多基本类型,诸如String
,Array
和Dictionary
类型均以结构体的形式实现。这意味着被赋值给新的常量或变量,或者被传入函数或方法中时,它们的值会被拷贝。
Objective-C 中NSString
,NSArray
和NSDictionary
类型均以类的形式实现,而并非结构体。它们在被赋值或者被传入函数或方法时,不会发生值拷贝,而是传递现有实例的引用。
NSString *aString = @"this is string";
NSString *bString = aString;
aString = @"this is jinping";
NSLog(@"---aString:%@",aString);
NSLog(@"---bString:%@",bString);
NSMutableString *aMString = [[NSMutableString alloc] initWithString:@"aaa"];
NSMutableString *bMString = aMString;
[aMString insertString:@"bbb" atIndex:0];
NSLog(@"---aMString:%@",aMString);
NSLog(@"---bMString:%@",bMString);
打印结果:
2017-09-03 15:59:23.671 UISkeletonStoryboard[30281:2220465] ---aString:this is jinping
2017-09-03 15:59:23.671 UISkeletonStoryboard[30281:2220465] ---bString:this is string
2017-09-03 15:59:23.672 UISkeletonStoryboard[30281:2220465] ---aMString:bbbaaa
2017-09-03 15:59:23.672 UISkeletonStoryboard[30281:2220465] ---bMString:bbbaaa
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!