(IOS系列)——OC基础语法:Copy

本文深入探讨了Objective-C与Swift作为iOS开发语言的特点与应用,包括语法差异、性能对比、社区生态及未来发展趋势。帮助开发者更好地选择适合的编程语言进行iOS应用开发。



Copy的作用是将已有对象复制出一个性的对象,在对新的对象做修改的时候,原来的对象没有影响

Copy的使用,分为两种

Copy出一个可变对象(mutableCopy方法)

copy出一个不可变对象(copy)

(深拷贝) :内容和对象都会拷贝   结构改变了的copy都是深拷贝 从可变copy出一个可变结构也是深拷贝

(浅拷贝):仅仅拷贝对象(指针),内容还是以前的那块内容 从不可变对象copy出一个不可变对象 

void MutableCopy(){
    //创建一个NSString对象
    NSString *str = [[NSString alloc] initWithFormat:@"My age is %i",20];
    
    //更具已有对象,Copy出一个可变字符串
    NSMutableString *string = [str mutableCopy];
    
    //我们先验证copy出来的可变对象是否为同一个对象,其实对于这一点,不用想都知道,一个可变一个不可变,必然不是同意个对象
    NSLog(@"%i",str == string);
    
    [string appendFormat:@" I love"];   //在可变字符串后面添加一段字符串
    NSLog(@"%@",string);
    
    [str release];
    [string release];
}

#pragma mark copy的使用
void stringCopy(){
    //创建一个NSString对象
    NSString *str = [[NSString alloc] initWithFormat:@"My age is %i",20];
    
    //根据已有对象,Copy出一不可变个可变字符串
    NSMutableString *string = [str copy];
    
    //我们先验证copy出来的不可变对象是否为同一个对象,这一点和可变字符串的是有区别的
    NSLog(@"%i",str == string);             //这个返回值为1,也就是说,创建出来的对象和以前的对象是同一个对象  这是因为,创建出来的这个对象也是不可变的,那么系统为了性能考虑,不会重新分配内存创建一个新的对象,而是直接返回源对象本身

    
    [string release];
    [str release];          //有过alloc new copy这样的操作,都需要我们手动释放内存
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值