ios学习之 方法中的参数为引用类型
2015-07-20 16:49
435 查看
今天要来测试一下引用类型被当作参数传入方法中是值传递还是地址传递
上面例子中在方法内部将UILabel的地址置为空,输出结果为
总结:当引用类型被当作参数传入方法时是值传递,只能修改里面的内容,不能改变它的地址。
@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; [self test:label]; NSLog(@"address in class:%p",label); } -(void)test:(UILabel *)label{ label=nil; NSLog(@"address in method:%p",label); } @end
上面例子中在方法内部将UILabel的地址置为空,输出结果为
l1_pointer[5863:229620] address in method:0x0 l1_pointer[5863:229620] address in class:0x7fa22053ff40可以看到
label=nil;只是将方法中的label变成了空指针,并没有影响到类中的label
总结:当引用类型被当作参数传入方法时是值传递,只能修改里面的内容,不能改变它的地址。
相关文章推荐
- iOS开发-AutoresizingMask
- iOS OC04_属性
- iOS开发的22个奇葩技巧
- iPhone中使用NSLocalizedString实现国际化
- iOS OC03_继承,便利构造器,初始化方法
- iOS OC02_可见度,方法
- ios-block
- iOS 高德地图API不能定位及INVALID_USER_SCODE
- iOS OC01_类和对象
- iOS编码规范文档
- 调试iOS 已经发布代码 Crash 文件分析出出错对应代码
- [iOS]14个Xcode中常用的快捷键操作
- 免费的iOS企业证书打包服务
- iOS给一张矩形图片剪切成圆形图片
- IOS NSNotification Center 通知中心的使用
- iOS9适配小结
- IOS NSNotification Center 通知中心的使用
- iOS 开发:设计模式
- IOS:MD5加密
- IOS开发笔记——用PushMeBaby测试Push推送