12月18号 属性property
2015-12-18 12:57
183 查看
默认成员变量是私有的 只在本身这个类里面可以使用
@property演变过程
但是由于代码量过于复杂冗长,引入了@property (声明)和 @synthesize(实现)
后来又简化成只有@property,而省略了@synthesize,自动生成
最后省略了成员变量改为属性,去掉了大括号,用@property属性一句话写完
代码:
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) int age;
/*
1. 定义了一个属性 name
2. 声明了一个set方法
3. 声明了一个get方法
4. 实现了相应的setter/getter方法
*/
定义了一个吃面包的函数,在内部方法调用内部属性的时候,要用_name,因为@synthesize虽然省略了,但是该实现的还是实现了
-(void)eat:(Bread *)aBread{
NSLog(@"%@吃掉了%@面包",_name,aBread.style);
}
main中赋值和调用的时候有两种方式
1. hr.name = @"wangkaiyu";
NSLog(@"%@",wky.name);
2. [hr setAge:22];
NSLog(@"%d",[wky age]);
@property演变过程
但是由于代码量过于复杂冗长,引入了@property (声明)和 @synthesize(实现)
后来又简化成只有@property,而省略了@synthesize,自动生成
最后省略了成员变量改为属性,去掉了大括号,用@property属性一句话写完
代码:
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) int age;
/*
1. 定义了一个属性 name
2. 声明了一个set方法
3. 声明了一个get方法
4. 实现了相应的setter/getter方法
*/
定义了一个吃面包的函数,在内部方法调用内部属性的时候,要用_name,因为@synthesize虽然省略了,但是该实现的还是实现了
-(void)eat:(Bread *)aBread{
NSLog(@"%@吃掉了%@面包",_name,aBread.style);
}
main中赋值和调用的时候有两种方式
1. hr.name = @"wangkaiyu";
NSLog(@"%@",wky.name);
2. [hr setAge:22];
NSLog(@"%d",[wky age]);
相关文章推荐
- Centos 装系统 配置网卡,校准时间
- CentOS 7安装配置Samba服务器
- CentOS 7 安装Mono 和 MonoDevelop
- HADOOP的那些坑
- Linux 文件系统、启动过程 之 内核剖析 读笔
- linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
- facial opensource
- devstack安装使用openstack常见问题与解决的方法
- Linux共享内存
- linux 如何显示一个文件的某几行(中间几行)
- Linux运维之道
- linux系统下的hostname详解
- linux下生成core dump文件方法及设置
- [Linux] 使用iostat分析IO性能
- VS2010+PCL+openni配置
- 详解Linux系统中字符串搜索命令ngrep的用法
- linux c/c++监听鼠标或键盘事件
- linux常用命令2
- strftime 输出显示乱码
- profile与bashrc