20150619_OC之copy与mutableCopy

来源:互联网 发布:网络贷款征信查询平台 编辑:程序博客网 时间:2024/06/08 07:30
////  main.m//  IOS150619_ObjectiveC_CopyAndMutableCopy////  Created by qianfeng on 15/6/19.//  Copyright (c) 2015年 Peng Junlong. All rights reserved.//#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {                //-------------copy----------------------        //copy:将可变对象及不可变对象Copy生成一个不可变的对象,即返回值是一个不可变对象        NSString *str = @"Hello World";        NSString *str1 = [str copy];//str copy生成的是一个不可变的字符串        NSLog(@"str = %p, str1 = %p",str,str1);        NSLog(@"str1 = %@",str1);        //结果:        //str = 0x100001048, str1 = 0x100001048        //str1 = Hello World                NSMutableString *str2 = [NSMutableString stringWithString:@"Hello World"];        NSString *str3 = [str2 copy];        //NSMutableString *str3 = [str2 copy];        //[str3 insertString:@"China" atIndex:4]; //  错误,不可变;str2是可变的,而生成的str3是不可变的        NSLog(@"str2 = %p, str3 = %p",str2,str3);        NSLog(@"str3 = %@",str3);        //结果:        //str2 = 0x1004000c0, str3 = 0x100400160        //str3 = Hello World                //-------------mutableCopy--------------        //mutableCopy:将可变或者不可变对象copy,生成可变对象        NSString *str4 = @"Hello China";        NSMutableString *str5 = [str4 mutableCopy];        [str5 insertString:@"ShangHai" atIndex:6];        NSLog(@"str4 = %p, str5 = %p",str4,str5);        NSLog(@"str5 = %@",str5);        //结果:        //str4 = 0x1000010e8, str5 = 0x100300840        //str5 = Hello ShangHaiChina                NSMutableString *str6 = [NSMutableString stringWithString:@"Hello China"];        NSMutableString *str7 = [str6 mutableCopy];        [str7 insertString:@"ShangHai" atIndex:6];        NSLog(@"str6 = %p, str7 = %p",str6,str7);        NSLog(@"str7 = %@",str7);        //结果:        //str6 = 0x100300610, str7 = 0x1003001a0        //str7 = Hello ShangHaiChina    }    return 0;}

0 0
原创粉丝点击