您好,登錄后才能下訂單哦!
在面向對象編程中,創建一個對象,肯定會包含其中的一些屬性,然后會為這些屬性寫上相應的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 <Foundation/Foundation.h> @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 <Foundation/Foundation.h> @interface Person : NSObject { //聲明一個變量 int myNumber; } // 普通的get和set //-(int)myNumber; //-(void)setMyNumber:(int)_number; @property(nonatomic)int myNumer; //這樣聲明之后,會動態創建 -(void)printf; @endperson.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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。