@property在OC中,特别是Xcode环境编写中,随处可见。这源于它的参数非常丰富,因此功能也十分强大。下面我就他的参数做一个简单的示例。
1、生成相关的get和set方法参数:readwrite/readonly
在编程中,我们为了类的成员变量的安全性,不允许外界随便修改和访问,会经常把这些成员变量做个一个包装—名曰封装。在以前我们经常用这种方法来封装我们的成员变量,例如,
- (void)setAge :(int)age
{
_age = age;
}
- (int)age
{
return age;
}
但是,我们发现每一个成员变量都需要做上述的封装,但是他们的格式都一样,因此Xcode给我们提供了一个函数property。运用@property可以让Xcode自动生成set和get方法。常用格式:@property int age(生成声明);@synthesize age = _age(生成实现的)
在Xcode4.4以后@property int age包含了@synthesize age = _age功能。它能生成带下划线的成员变量和声明实现。但是它有以下特性:当没有成员变量时,它生成的成员变量就是一个private的变量;当我们自己写了set和get方法后他就不会给我们生成带下划线的成员变量;当我们只写了set或者get方法时,他会主动补齐另一种方法。