黑马程序员-oc中关于属性的使用

来源:互联网 发布:随机种子知乎 编辑:程序博客网 时间:2024/06/08 08:48
------- android培训、java培训、期待与您交流! ----------
可以使用@property 定义属性,属性是用来代替声明存取方法的便捷方式。属性不会在你的类声明中创建一个新的实例变量。他们仅仅是定义方法访问已有的实例变量的速记方式而已。暴露实例变量的类,可以使用属性记号代替getter和setter语法。  
    getter和setter方法由系统自动生成。如果想同时手动设置getter和setter方法需要使用@synthesize. @synthesize通知编译器在没有setter和getter方法时,由编译器生成这两个方法。
-(void) setSomething:(NSString*)something{   _something=something;}-(NSString*)something{     return _something;}


    也可以为getter和setter方法指定不同的名称:  
        @property (nonatomic,getter=getsth) NSString *something。  
        @interface Person:NSObject //类的申明  
        @property NSString *firstName;//申明NSString类型的对象。 
        @property NSString *last Name;  
        @property NSNumber *yearOfBirth; //申明指针,对象
        @property int yearOfBirth;//声明基础类型,值类型
        @property (readonly) NSString *firstName; //只读的   
        @end    
        @property:Objective-C语言关键词,与@synthesize配对使用。  
    功能:让编译器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。  
如:  
        1、在头文件中: @property int count;  等效于在头文件中声明2个方法: 
        - (int)count;  
        -(void)setCount:(int)newCount; 
        2、实现文件(.m)中 @synthesize count;  等效于在实现文件(.m)中实现2个方法。 
        - (int)count {  return count; }  
        -(void)setCount:(int)newCount {  count = newCount; }  
    以上等效的函数部分由编译器自动帮开发者填充完成,简化了编码输入工作量。  
    属性是用.运算符访问,你完全可以用指针(->)去访问实例(成员)变量。
0 0
原创粉丝点击