- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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];
您可能关注的文档
- 雁门太守行优质教学幻灯片.ppt
- 青少年拒绝吸烟幻灯片.ppt
- 青岛版四年级科学上册植物的根幻灯片.ppt
- 青岛版小学数学四年级上册总复习幻灯片.ppt
- 青玉案-元夕(辛弃疾)幻灯片.ppt
- 音乐幻灯片《春天的故事》.ppt
- 音乐欣赏丰收锣鼓幻灯片.ppt
- 音标幻灯片-带发音.ppt
- 顶碗少年-优秀幻灯片.ppt
- 面对经济全球化PPT幻灯片-精.ppt
- 8 黄山奇石(第二课时)课件(共22张PPT).pptx
- 22《纸船和风筝》教学课件(共31张PPT).pptx
- 17 松鼠 课件(共23张PPT).pptx
- 23《海底世界》课件(共28张PPT).pptx
- 21《大自然的声音》课件(共18张PPT).pptx
- 第12课《词四首——江城子 密州出猎》课件 2025—2026学年统编版语文九年级下册.pptx
- 第2课《济南的冬天》课件(共42张PPT) 2024—2025学年统编版语文七年级上册.pptx
- 17 跳水 第二课时 课件(共18张PPT).pptx
- 第六单元课外古诗词诵读《过松源晨炊漆公、约客》课件 统编版语文七年级下册.pptx
- 统编版六年级语文上册 22《文言文二则》课件(共27张PPT).pptx
原创力文档


文档评论(0)