@synthesize的正确使用方式
2016-03-22 18:10
417 查看
@synthesize的正确使用方式
一. @synthesize的错误使用方式
类1和类2是继承关系, name是类1的属性但是类2的实现里加入了@synthesize name = _name;
导致类1的setName name 方法都被重写了
调用结果: 没有打印任何语句
类1:
#import <Foundation/Foundation.h> @interface MyTestObj : NSObject @property (nonatomic, strong) NSString *name; @end #import "MyTestObj.h" @implementation MyTestObj @synthesize name = _name; - (void)setName:(NSString *)name { _name = name; NSLog(@"%s invoke", __func__); } @end
类2:
#import "MyTestObj.h" @interface MyCartObj : MyTestObj @end #import "MyCartObj.h" @implementation MyCartObj @synthesize name = _name; @end
MyCartObj *cart = [[MyCartObj alloc] init]; [cart setName:@"myname"];
调用结果: 没有打印任何语句
原因: 因为类2使用了@synthesize name = _name, 所以 类1的setName name 方法都被重写了;
相关文章推荐
- Java 关于Ajax的实例--验证用户名(四)
- 应用多级缓存模式支撑海量读服务
- vs2012 单元测试中Common.Logging抛异常的解决方案
- 【matlab】:matlab画图
- 一个神奇的网站(快快乐乐写时序图)
- mysql alter 语句用法,添加、修改、删除字段等
- 我的git常用命令
- 初识MongoDB
- MySQL复制表结构,表数据
- bower 简易说明
- Python小工具--删除svn文件
- sed的基础应用
- Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式
- 一个方便集成的 Android 右滑返回上级 控件
- x&(x-1)和x&(-x)的讲解
- MANIFEST.MF文件全面解析
- 如何安装rockmongo(gui for mongodb)
- DB2活动日志满的原因、分析、处理与避免
- Linux下安装Oracle11g中文乱码,DISPLAY未通过
- iOS开发: 做真机测试时 遇到的 bitcode 的问题