你的位置:首页 > 操作系统

[操作系统]strong vs copy


一、前言
          在这里,我通过实例去介绍strong和copy的区别(%p打印出来对象的地址)
ViewController.h           
#import <UIKit/UIKit.h>@interface ViewController : UIViewController@property(nonatomic,strong) NSString *name;@endViewController.m - (void)viewDidLoad {  [super viewDidLoad];  NSMutableString *myName = [NSMutableString stringWithString:@"zhangsan"];  self.name = myName;  NSLog(@"myName's address:%p",myName);  NSLog(@"self.name's address:%p",self.name);} 


  运行结果是:
2015-07-21 16:38:50.911 Test[4369:2323491] myName's address:0x7967f4c02015-07-21 16:38:50.912 Test[4369:2323491] self.name's address:0x7967f4c0 


而当我们把.h中的strong改成copy时,
@property(nonatomic,copy) NSString *name;


运行结果是:
2015-07-21 16:40:09.938 Test[4394:2330879] myName's address:0x78deb9b02015-07-21 16:40:09.938 Test[4394:2330879] self.name's address:0x78dea270


对比可以发现:
     当我们使用strong时,myName对象和self.name的地址相同,说明两者指向的是同一个地址空间:0x7967f4c0
    而当我们把.h中name的strong改成copy时,myName和self.name地址不同,说明两者指向的是不同的地址空间。
          myName是:0x78deb9b0
            self.name是:0x78dea270
这说明:当我们使用copy的时候表示拥有不同的存储空间,存放的是相同的内容。因此如果我们对myName进行修改,self.name是不会受到影响的。
 
总结:
  这里你应该学到:
    1、strong和copy的区别
    2、我们可以用%p打印出对象的地址。



贵州旅游攻略大全贵州旅游路线推荐贵州自驾游攻略贵州旅游线路大全什么时候去贵州旅游最好桂林神龙水世界景区几点开门?神龙水世界开门时间? 桂林神龙水世界度假怎么样?神龙水世界景区有什么好玩的? 桂林神龙水世界两日游攻略?神龙水世界两日游费用? 旅游大事件:国人赴日赏樱,促日形成“樱花经济”[二] 白水寨紫荆花最佳观赏时间?增城白水寨紫荆花几月份最好看? 白水寨紫荆花开了吗?增城白水寨景区紫荆花开花时间? 2015三八妇女节东莞龙凤山庄门票多少?东莞龙凤山庄门票3.8女士免费吗? 2015广东油菜花几时去最好看?3月广东油菜花开了吗? 背上行囊走安徽 背包客十大必游经典线路 郭沫若与鼋头渚的故事 秀色可餐游康定 美食难挡味觉享受 佛光普照甘孜城 庙宇文化引人入胜 泰国皇帝岛深潜注意事项有那些? 去泰国需要提前换多少泰铢? 机场去曼谷宜必思娜娜酒店怎么走?有多远? 可以直接从皮皮岛前往皇帝岛吗? IDT5V9910A-5SOGI Datasheet IDT5V9910A-5SOGI Datasheet IDT71V3558XS133PFI8 Datasheet IDT71V3558XS133PFI8 Datasheet IDT72V3650L15PFI Datasheet IDT72V3650L15PFI Datasheet 四平到香港澳门旅游价格 四平到香港澳门旅游价格 四平到香港澳门旅游价格 长春到港澳4日游 长春到港澳4日游 长春到港澳4日游 牡丹江到港澳3日游 牡丹江到港澳3日游 牡丹江到港澳3日游