0
点赞
收藏
分享

微信扫一扫

iOS面试题:对NSArray和NSMutableArray进行copy和mutableCopy分别会得到什么样的数组?

花明 2021-10-04 阅读 50

一、NSArray的copy和mutableCopy操作进行探究

//1、对NSArray分别使用`copy` & `mutableCopy`进行内存地址的对比
    NSArray *orgArr = @[@"ningjianwen", @"kongjiangmei"];
    NSArray *copyArr = [orgArr copy];
    NSMutableArray *mcopyArr = [orgArr mutableCopy];
    [mcopyArr addObject:@"jiangxianjin"];
    
    NSLog(@"NSArray 地址对比结果打印:");
    
    NSLog(@"orgArr 地址: %p", orgArr);
    NSLog(@"copyArr 地址: %p", copyArr);
    NSLog(@"mcopyArr 地址: %p", mcopyArr);

打印结果如下:

2019-06-13 20:05:48.915949+0800 ArrayCopyAndMutableCopy[54942:3399095] NSArray 地址对比结果打印:
2019-06-13 20:05:48.916073+0800   ArrayCopyAndMutableCopy[54942:3399095] orgArr 地址: 0x600003716bc0
2019-06-13 20:05:48.916189+0800 ArrayCopyAndMutableCopy[54942:3399095] copyArr 地址: 0x600003716bc0
2019-06-13 20:05:48.916266+0800 ArrayCopyAndMutableCopy[54942:3399095] mcopyArr 地址: 0x600003951b90

二、NSMutableArray的copy和mutableCopy操作进行探究

//2、对NSMutableArray分别使用`copy` & `mutableCopy`进行内存地址的对比
    NSMutableArray *orgMArr = [NSMutableArray arrayWithObjects:@"星辰", @"江河",nil];
    NSArray *copyMArr = [orgMArr copy];
    NSMutableArray *mcopyMArr = [orgMArr mutableCopy];
    [mcopyMArr addObject:@"日月"];
    
    NSLog(@"NSMutableArray 地址对比结果打印:");
    
    NSLog(@"orgMArr 地址: %p", orgMArr);
    NSLog(@"copyMArr 地址: %p", copyMArr);
    NSLog(@"mcopyMArr 地址: %p", mcopyMArr);

打印结果如下:

2019-06-13 20:05:48.916348+0800 ArrayCopyAndMutableCopy[54942:3399095] NSMutableArray 地址对比结果打印:
2019-06-13 20:05:48.916418+0800 ArrayCopyAndMutableCopy[54942:3399095] orgMArr 地址: 0x600003951e90
2019-06-13 20:05:48.916482+0800 ArrayCopyAndMutableCopy[54942:3399095] copyMArr 地址: 0x600003716ba0
2019-06-13 20:05:48.916546+0800 ArrayCopyAndMutableCopy[54942:3399095] mcopyMArr 地址: 0x600003951da0

https://www.ucloud.cn/yun/17336.html

举报

相关推荐

0 条评论