Object-c学习笔记十二-----特性
来源:互联网 发布:网络歌曲欣赏 编辑:程序博客网 时间:2024/06/05 19:54
前面我们在编写的时候用到了set方法和get方法。在object-c2.0中引入了特性(property)。
在头文件中修改,用到关键字@property 可以看如下代码:
@propertyfloat rainHandling;
@propertyfloat snowHandling;
//-(void) setrainHandling:(float) rainHandling;
//-(float) rainHandling;
//
//-(void) setsnowHandling:(float) snowHandling;
//-(float) snowHandling;
将set和get方法用@property替代。实现它们的方法如下用到关键字如下@synthesize
@synthesize rainHandling;
@synthesize snowHandling;
//-(void) setrainHandling:(float)rh
//{
// rainHandling=rh;
//}
//-(float) rainHandling
//{
// return rainHandling;
//}
//-(void) setsnowHandling:(float)sh
//{
// snowHandling=sh;
//}
//-(float) snowHandling
//{
// return snowHandling;
//}
这样对比起来我们减少了不少代码,但是我们的功能仍然实现。该技术也适用于int ,char , bool , struct 类型。甚至可以去定义一个类。
@interface Car : NSObject
{
NSString *name;
Engine *engine;
NSMutableArray *tires;
}
@property (copy) NSString *name;
@property (retain) Engine *engine;
实现的如下:
@synthesize name;
@synthesize engine;
还可以设置特性的读写属性。默认情况下特性时可读写的。readwrite属性。
@property (readwrite ,copy) NSString *name;
也可设置为只读属性
@property (readonly) NSString *licenseNumber;
我们也注意到特性也不是万能的在Car类中。我们就没有tire使用特性。
特性只能替代set和get方法。但是不支持那些需要接受额外参数的方法。
点表达式的妙用。
// [tire setrainHandling:20+i];
// [tire setsnowHandling:28+i];
tire.rainHandling=20+i;
tire.snowHandling=28+i;
如果点表达式在等号的左边,表示该属性名称的set方法。反之,在等号的右边,表示该属性名称的get方法。- Object-c学习笔记十二-----特性
- Object-C 学习笔记(十二)---Foundation之NSNumer
- Object-C 学习笔记(二十二)--- 协议Protocol
- Object-c的三大特性 学习笔记
- Object-C学习笔记
- object-c学习笔记
- Object-C学习笔记
- Object-c学习笔记
- Object-C学习笔记
- object-c学习笔记
- Object-c学习笔记
- c 语言学习笔记十二
- Object-c学习之路十二(OC的copy)
- object c学习笔记(1)
- object-c学习笔记-1
- object-c学习笔记-2
- object-c 学习笔记四
- Object-c学习笔记(1)
- About variant scope chain
- H3D API overview
- 全景图技术概述
- XML第二课
- 拓扑&&reward
- Object-c学习笔记十二-----特性
- C语言循环的小艺术
- Project Ruler 13 给你100个50位数,求它们和的前十位
- ISTQB AL高级认证系列02:ISTQB AL-TA测试分析员学习目标
- ubuntu下java+web环境搭建
- lsof用法
- Ubuntu 10.10 安装谷歌PINYIN拼音输入法 详细步骤
- 超级详细Tcpdump 的用法
- 处理器——半导体巅峰,纵横四十年