Objective-C-2.0程序设计-第18章-复制对象课件.pptVIP

Objective-C-2.0程序设计-第18章-复制对象课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第18章 复制对象;目录;18.1 Copy和MutableCopy方法;18.1 Copy和MutableCopy方法;Program 18.1 #import Foundation/NSObject.h #import Foundation/NSArray.h #import Foundation/NSString.h #import Foundation/NSAutoreleasePool.h int main (int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSMutableArray *dataArray = [NSMutableArray arrayWithObjects: @”one”, @”two”, @”three”, @”four”, nil]; NSMutableArray *dataArray2; // simple assignment dataArray2 = dataArray; [dataArray2 removeObjectAtIndex: 0]; NSLog (@”dataArray: “); for ( NSString *elem in dataArray ) NSLog (@” %@”, elem); NSLog (@”dataArray2: “); for ( NSString *elem in dataArray2 ) NSLog (@” %@”, elem); // try a Copy, then remove the first element from the copy;dataArray2 = [dataArray mutableCopy]; [dataArray2 removeObjectAtIndex: 0]; NSLog (@”dataArray: “); for ( NSString *elem in dataArray ) NSLog (@” %@”, elem); NSLog (@”dataArray2: “); for ( NSString *elem in dataArray2 ) NSLog (@” %@”, elem); [dataArray2 release]; [pool drain]; return 0; };该程序定义了可变数组对象dataArray,并分别将其元素设置为字符串对象@”one”、 @”two”@”three”@”four”。 前面讨论过,赋值语句 dataArray2=dataArray; 仅仅创建了对内存中同一个数组对象的另一个引用。从dataArray2中删除第一个 对象并随后输出两个数组对象中的元素。不出意料,这两个引用中的第一个元素 (字符串@”one”)都会消失。 接下来,创建一个dataArray的可变副本并将它赋值给dataArray2的最终副本。 这样在内存中创建了两个截然不同的可变数组,两者都包含三个元素。现在,删除 dataArray2中的第一个元素,不会对dataArray的内容有任何影响,正如程序输出的 最后两行验证一样。;18.1 Copy和MutableCopy方法;18.2 浅复制与深复制;// make a copy, then change one of the strings dataArray2 = [dataArray mutableCopy]; mStr = [dataArray objectAtIndex: 0]; [mStr appendString: @”ONE”]; NSLog (@”dataArray: “); for ( NSString *elem in dataArray ) NSLog (@” %@”, elem); NSLog (@”dataArray2: “); for ( NSString *elem in dataArray2 ) NSLog (@” %@”, elem); [dataArray2 release]; [pool drain]; return 0; };18.2 浅复制与深复制;18.2 浅复制与深复制;18.3 实现NSCopying协议;18.3 实现NSCopying协议;在实现文件Fraction.m中,为新方法添加下列定义: -(id) copyWithZone: (NSZone *) zone { Fraction *newFract = [[Fraction allocWithZone: zone] init]; [newFract setTo: numerator over: denominator];

文档评论(0)

manyu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档