转载请标明出处:
http://blog.csdn.net/hai_qing_xu_kong/article/details/54667858
本文出自:【顾林海的博客】

前言

前一篇笔记记录了自定类的步骤以及如何存取,这篇笔记将会提供一种用于简化存取的方法,我们称之为属性。

实例

#import <Foundation/Foundation.h>@interface Person : NSObject
//定义两个属性
@property (nonatomic) int _age;
@property (nonatomic) NSString *_name;- (void) printPersonInfo;@end    

属性的声明以@property开始,然后是属性的类型和名称。声明属性会让头文件更简洁,从而减少代码的输入。而且在声明属性的时候,编译器不仅会帮你声明存取方法,还会根据属性的声明实现存取方法。

接着修改Person.m文件内容:

#import "Person.h"@implementation Person- (void)printPersonInfo{int age=[self _age];if(age<30){NSLog(@"age=%d,name=%@",__age,__name);}else{NSLog(@"error");}
}@end

最后看main.m文件:

#import <Foundation/Foundation.h>
#import "Person.h"int main(int argc, const char * argv[]) {@autoreleasepool {// insert code here...Person *person=[[Person alloc]init];person._name=@"bill";person._age=26;[person printPersonInfo];}return 0;
}

运行程序与前一篇笔记输出一样。

属性的特性

属性的声明可以有一个或多个属性特性。属性特性会告诉编译器关于属性行为的更多信息。属性特性会显示在@property接口后的括号中。

就像上面程序那样:

@property (nonatomic) int _age;
@property (nonatomic) NSString *_name;

如果一个类需要只读属性,也就是该属性拥有取方法,但不能有存方法,可以在属性特性处添加一个readonly :

@property (nonatomic,readonly) NSString *_name;

当然除了有只读,还有其他一些特性:

读写:

@property (nonatomic,readwrite) NSString *_name;

IOS开发笔记16-Object-C中的属性相关推荐

  1. IOS开发笔记17-Object-C中的继承

    转载请标明出处:[顾林海的博客] 个人开发的微信小程序,目前功能是书籍推荐,后续会完善一些新功能,希望大家多多支持! ##前言 在前面的程序Person.h文件中可以看到,Person继承了NSObj ...

  2. IOS开发笔记13-Object-C中的NSString

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53572258 本文出自:[顾林海的博客] 前言 NSString是Ob ...

  3. IOS开发笔记12-Object-C中的对象与内存

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53556243 本文出自:[顾林海的博客] 前言 Object-C的内存 ...

  4. IOS开发笔记11-Object-C中的传递消息

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53534039 本文出自:[顾林海的博客] 前言 在前一篇例子中传递的是 ...

  5. IOS开发笔记10-Object-C中的对象

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53513004 本文出自:[顾林海的博客] 前言 关于c语言的基础部分已 ...

  6. iOS开发笔记[16/50]:Views

    看<Programming iOS 4>的第14章Views,记住这些要点: (1)UIView也是UIResponder的子类: (2)View有树状的层次结构: (3)view可以用X ...

  7. iOS开发笔记-两种单例模式的写法

    iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h"st ...

  8. IOS开发笔记之推广安装(用网页判断是否安装App)

    IOS开发笔记之推广安装(用网页判断是否安装App) 在做App推广的时候,我们经常会用到网页链接下载,亦或是一张二维码,最常见的做法就是将App在iTunes中的下载链接嵌入,当用户扫描或者点击网页 ...

  9. 属性数量限制android,Android开发笔记 今天学到的一些属性

    Android开发笔记 今天学到的一些属性 更新时间:2012年11月07日 10:23:33   作者: 离开实验室之前再贴上今天下午自己学到的一些基础知识 上午干嘛了呢,忙着数据恢复呢 1.最后程 ...

最新文章

  1. zabbix4.0搭建(基于CentOS6.8)
  2. 跨网文件摆渡如何满足不同安全要求?
  3. 中国钢铁行业战略规划及项目建设动态分析报告2021-2027年
  4. wxWidgets:wxThread类用法
  5. 【笔记】分离字符串中的数字、字母和汉字
  6. Linux伪终端怎么退出,什么是linux里的终端和伪终端
  7. C#LeetCode刷题之#9-回文数(Palindrome Number)
  8. Guns 旗舰版2.1发布,更新树形表格
  9. DRILLNET 2.0------第八章 预防碰撞分析模型
  10. springboot 集成redis实现session共享
  11. Android 源码变迁
  12. java开发一个银行系统_java实现银行管理系统
  13. Java计算机毕业设计大学生企业推荐系统源码+系统+数据库+lw文档
  14. Python获取对象所占内存大小方法
  15. 【码农学编曲】吉他伴奏
  16. HTML常见问题整理1
  17. 企业私有网络构建与运维
  18. 使用Graham扫描法获取一个平面点集的凸包
  19. 为有梦青年插上助力的翅膀 魅族开发者大赛取得圆满成功
  20. 神通数据库自助在线查询

热门文章

  1. java zipinputstream_Java之解压流(ZipInputStream)
  2. [JUC-5]ConcurrentHashMap源码分析JDK8
  3. 深浅拷贝、函数、内置函数、文件处理、三元运算、递归
  4. 创新时代的管理:《创新赢天下》
  5. html中,纯数字或纯英文的一串字符超出父容器不会折行显示,如何解决?
  6. Java多线程相关知识
  7. HTML5实践之歌词同步播放器
  8. Nagios监控部署(四)--被监控主机配置
  9. c#写的贪吃蛇小游戏
  10. Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局