程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> [Objective-C]OC 中對象屬性的設置器和訪問器

[Objective-C]OC 中對象屬性的設置器和訪問器

編輯:關於C語言

 

在面向對象編程中,創建一個對象,肯定會包含其中的一些屬性,然後會為這些屬性寫上相應的set,get方法(就是通常我們講的設置器和訪問器)

一):通常意義上我們寫的屬性的set和get方法如下:創建對象,定義聲明屬性,然後手動編寫setXXX(),getXXX()方法,如下:Person對象

1:Person.h

 

//
//  Person.h
//  PersonGetSet
//
//  Created by hmjiangqq on 14-1-22.
//  Copyright (c) 2014年 hmjiangqq. All rights reserved.
//

#import 

@interface Person : NSObject
{
    //聲明一個變量
    int myNumber;
}
-(int)myNumber;
-(void)setMyNumber:(int)_number;
-(void)printf;
@end
2:Person.m
   
// // Person.m // PersonGetSet // // Created by hmjiangqq on 14-1-22. // Copyright (c) 2014年 hmjiangqq. All rights reserved. // #import "Person.h" @implementation Person -(int)myNumber{ return myNumber; } -(void)setMyNumber:(int)_number{ myNumber=_number; } -(void)printf{ NSLog(@"myNumber is %d\n",myNumber); } @end 
這個當屬性比較的少的時候還可以,如果一個對象的屬性非常多的時候,我們一個個去手動寫,會非常浪費開發時間,影響效率.所以在OC2.0版本之後出現了自動的設置器和訪問器.
 下面我們來介紹一下OC中特有的設置和訪問器
2:簡化設置器和訪問器.注意兩個關鍵字@property,@synthesize
  person.h
  
// // Person.h // PersonGetSet // // Created by hmjiangqq on 14-1-22. // Copyright (c) 2014年 hmjiangqq. All rights reserved. // #import  @interface Person : NSObject { //聲明一個變量 int myNumber; } // 普通的get和set //-(int)myNumber; //-(void)setMyNumber:(int)_number; @property(nonatomic)int myNumer; //這樣聲明之後,會動態創建 -(void)printf; @end 
person.m

// // Person.m // PersonGetSet // // Created by hmjiangqq on 14-1-22. // Copyright (c) 2014年 hmjiangqq. All rights reserved. // #import "Person.h" @implementation Person // 普通的get和set實現 //-(int)myNumber{ // return myNumber; //} //-(void)setMyNumber:(int)_number{ // myNumber=_number; //} @synthesize myNumer; -(void)printf{ NSLog(@"myNumber is %d\n",myNumber); } @end
二)在@property()括號中,可以填寫的屬性:
   readwrite:默認
   readonly: 只讀以為中麼有set方法
   assign:默認,引用計數不增加
   retain:引用計數增加1
   原子性:actiomic 默認
   非原子性:nonatomic


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved