• 山西税务系统一次性“打包”12项业务 2019-10-13
  • 江干区结对帮扶西藏那曲教育玩转“一对一”“多对一” 2019-10-11
  • 6月15日一分钟阅尽天下军情 2019-10-11
  • 赌王四太家的豪宅曝光,网友:一点都不羡慕 ——凤凰网房产 2019-10-10
  • 郭碧婷曝杨幂怀孕趣事,杨幂实力学习台湾腔 2019-10-10
  • 川航成功备降获赞还需反思 提直降代倒逼OTA服务提升 2019-10-10
  • 旅游--北京频道--人民网 2019-09-19
  • 山东将推动各类保护区范围内煤矿有序退出 2019-09-19
  • 史上最大锦鲤!南京大二女生一次收到618个快递 2019-09-14
  • 俄罗斯球队为国争光,为普京争脸。揭幕战横扫沙特队,吸引世界眼球。一代伟人普京,是俄罗斯人民的福气,强国,强军、富民,是普京献词“地球盛宴”的真正荣耀时刻,俄国人 2019-09-14
  • 海军第27批护航编队结束对摩洛哥访问  2019-09-05
  • 【脱贫路上】衣比·衣明: 小庭院里巧增收 2019-09-05
  • 华媒:瑞士失业率创历史新低 技术型劳动力短缺 2019-09-04
  • 告别“电钻音”安静“不扰民” 九阳率先推出静音破壁机 2019-09-01
  • 《歌手》首发阵容6年来最尬?令我震惊的只有…… 2019-08-23
  • 注册 登录
    主题 : OC对象与指针问题,求解惑??!
    级别: 新手上路
    状态: 连续签到 - [16天]
    UID: 481472
    精华: 0
    发帖: 11
    可可豆: 120 CB
    威望: 92 点
    在线时间: 30(时)
    注册时间: 2015-06-15
    最后登录: 2019-05-17
    0 楼:  发表于: 2019-03-10 22:32    发自: Web Page
    来源于 一般提问 分类

    历史六合图库:OC对象与指针问题,求解惑??!   


    今天突然想到指针的问题,然后
    我写了个测试如下:

     六合图库财神 www.lbymm.tw 
    
        NSNumber *no1 = @2;
        NSNumber *no2 = no1;
        no1 = @4;
        NSLog(@"no2: %@, no1:%@",no2,no1);     //-----  2,4。值不同
        NSLog(@"no2: %p, no1:%p",&no2,&no1);   // ----- 地址不同。
    
    



    我原以为oc对象都是指针,然后指向对象那块内存,对象间的赋值是指针的复制。  
    但这个结果说明,OC对象的赋值不是指针复制,那是内容复制吗,内容复制那不就是深拷贝了么?
    还有oc里,方法和block的参数都是形参吧?
    希望大佬解惑。


    级别: 侠客
    UID: 511656
    精华: 0
    发帖: 116
    可可豆: 157 CB
    威望: 147 点
    在线时间: 647(时)
    注册时间: 2015-10-08
    最后登录: 2019-03-11
    1 楼:  发表于: 2019-03-11 09:35    发自: Web Page
    是因为‘NSNumber字面’。@是个语法糖 这里的@4 相当于 [NSNumber numberWithInt:4]; 相当于初始化了no1,所以值不同,内存地址也不同
    btw:
    Clang 3.1为Objective-c增加了三个功能,它们的美学和装饰效果可以和Objective-C 2.0引入的变化相媲美:NSNumber字面,集合字面,和__对象的下标索引__。
    [ 此帖被caoshunqing123在2019-03-11 09:43重新编辑 ]

    级别: 新手上路
    UID: 678057
    精华: 0
    发帖: 1
    可可豆: 1 CB
    威望: 1 点
    在线时间: 4(时)
    注册时间: 2019-03-11
    最后登录: 2019-04-08
    2 楼:  发表于: 2019-03-11 09:38    发自: Web Page
    ...........
    级别: 精灵王
    UID: 164303
    精华: 0
    发帖: 3111
    可可豆: 3469 CB
    威望: 3446 点
    在线时间: 5520(时)
    注册时间: 2012-09-02
    最后登录: 2019-05-15
    3 楼:  发表于: 2019-03-11 09:39    发自: Web Page
    一开始no1和no2都指向了 @2
    然后no1重新指向了@4
    下面两个结果是正常的,没有什么所谓深拷贝的问题。
    级别: 版主

    状态: 连续签到 - [83天]
    UID: 519631
    精华: 0
    发帖: 1029
    可可豆: 1991 CB
    威望: 1364 点
    在线时间: 3190(时)
    注册时间: 2015-11-02
    最后登录: 2019-05-18
    4 楼:  发表于: 2019-03-11 09:43    发自: Web Page
    设:@2的地址是0x100,@4的地址是0x102

    NSNumber *no1 = @2;
    此时no1的值为0x100,此时no1本身在栈上假设地址为0xff100

    NSNumber *no2 = no1;
    此时no2的值为0x100,此时no2本身在栈上假设地址为0xff108

    no1 = @4;
    此时no1的值为0x102,no1在栈上地址为0xff100

    NSLog(@"no2: %@, no1:%@",no2,no1);
    此时两个指针的值不一样

    NSLog(@"no2: %p, no1:%p",&no2,&no1);
    此时两个指针变量自身的地址不一样
    [ 此帖被ad0ma在2019-03-11 10:11重新编辑 ]

    级别: 新手上路
    状态: 连续签到 - [6天]
    UID: 464136
    精华: 0
    发帖: 62
    可可豆: 128 CB
    威望: 95 点
    在线时间: 1457(时)
    注册时间: 2015-04-20
    最后登录: 2019-05-17
    5 楼:  发表于: 2019-03-11 09:46    发自: Web Page
    @4 是重新创建了对象吧
    级别: 新手上路
    状态: 连续签到 - [16天]
    UID: 481472
    精华: 0
    发帖: 11
    可可豆: 120 CB
    威望: 92 点
    在线时间: 30(时)
    注册时间: 2015-06-15
    最后登录: 2019-05-17
    6 楼:  发表于: 2019-03-11 09:57    发自: Web Page
    回 1楼(caoshunqing123) 的帖子
    原来如此,@4是创建了新的对象??!
    级别: 新手上路
    状态: 连续签到 - [16天]
    UID: 481472
    精华: 0
    发帖: 11
    可可豆: 120 CB
    威望: 92 点
    在线时间: 30(时)
    注册时间: 2015-06-15
    最后登录: 2019-05-17
    7 楼:  发表于: 2019-03-11 09:58    发自: Web Page
    回 3楼(noah1985) 的帖子
    知道啦,感谢!对了,一般oc对象的传值确实是指针的复制吧?
    级别: 新手上路
    状态: 连续签到 - [16天]
    UID: 481472
    精华: 0
    发帖: 11
    可可豆: 120 CB
    威望: 92 点
    在线时间: 30(时)
    注册时间: 2015-06-15
    最后登录: 2019-05-17
    8 楼:  发表于: 2019-03-11 10:00    发自: Web Page
    回 4楼(ad0ma) 的帖子
    理的好清楚,感谢大佬!
    那么一般oc对象的传值确实是指针的复制吧?
    级别: 新手上路
    状态: 连续签到 - [16天]
    UID: 481472
    精华: 0
    发帖: 11
    可可豆: 120 CB
    威望: 92 点
    在线时间: 30(时)
    注册时间: 2015-06-15
    最后登录: 2019-05-17
    9 楼:  发表于: 2019-03-11 10:00    发自: Web Page
    回 5楼(misslove1015) 的帖子
    对对, 是我脑子瓦特了 TAT

    CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:[email protected]】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

    描述
    快速回复

    关注本帖(如果有新回复会站内信通知您)

    发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

    按"Ctrl+Enter"直接提交
    • 山西税务系统一次性“打包”12项业务 2019-10-13
    • 江干区结对帮扶西藏那曲教育玩转“一对一”“多对一” 2019-10-11
    • 6月15日一分钟阅尽天下军情 2019-10-11
    • 赌王四太家的豪宅曝光,网友:一点都不羡慕 ——凤凰网房产 2019-10-10
    • 郭碧婷曝杨幂怀孕趣事,杨幂实力学习台湾腔 2019-10-10
    • 川航成功备降获赞还需反思 提直降代倒逼OTA服务提升 2019-10-10
    • 旅游--北京频道--人民网 2019-09-19
    • 山东将推动各类保护区范围内煤矿有序退出 2019-09-19
    • 史上最大锦鲤!南京大二女生一次收到618个快递 2019-09-14
    • 俄罗斯球队为国争光,为普京争脸。揭幕战横扫沙特队,吸引世界眼球。一代伟人普京,是俄罗斯人民的福气,强国,强军、富民,是普京献词“地球盛宴”的真正荣耀时刻,俄国人 2019-09-14
    • 海军第27批护航编队结束对摩洛哥访问  2019-09-05
    • 【脱贫路上】衣比·衣明: 小庭院里巧增收 2019-09-05
    • 华媒:瑞士失业率创历史新低 技术型劳动力短缺 2019-09-04
    • 告别“电钻音”安静“不扰民” 九阳率先推出静音破壁机 2019-09-01
    • 《歌手》首发阵容6年来最尬?令我震惊的只有…… 2019-08-23
    • 悟空分期app下载 斗地主赢钱 跟着团队买彩票赚钱是真的吗 稳赚包平特一肖 三 山西快乐十分前三组遗漏查询 2串1 3串1什么意思 重庆欢乐生肖开奖 澳洲三分彩手机计划 北京pk赛车20分钟一期 一分钟赛车计划网页 顶部