Objective-C有一条便捷途径,可以简化存取方法的过程。该途径称为属性(properties)。通过属性,可以简化代码。

声明属性(Declaring properties)

  在BNRPerson.h中删除实例变量,然后用下面两个属性heightInMeters和weightInKilos重写存取方法的声明,代码如下:

  属性的声明以@property开始,然后是属性的类型和名称。请暂时忽略代码中的(nonatomic)。它是属性的特性,将在后面的内容中介绍。

  声明属性会让头文件更简洁,声明属性可以帮你减少很多的代码输入。但是,除此之外,它还有其他好处。声明属性的时候,编译器不仅会帮你声明存取方法,还会根据属性的声明实现存取方法。

  也就是在BNRPerson.m实现文件中,你不再需要为存取方法写实现代码。

  有时候一个类需要只读(readonly)属性,也就是说,该属性的值只能够读取,不能改写。这样的属性需要拥有取方法但是不能有存方法。通过在属性特性处添加一个readonly,可以指导编译器只创建一个取方法,如下所示:

@property(nonatomic,readonly)double humanPouplation;

  这样编译器就会创建一个hunmanPouplation取方法但不会创建一个setHunmanPouplation:存方法。

而本书读/写属性是默认的,所以不需要另外在属性特性中声明:

@property(nonatomic)double humanPouplation;=@property(nonatomic,readwrite)double humanPouplation;

 

用点号调用存取方法(dot notation)