Objective-C----setter 和 getter

來源:互聯網
上載者:User

標籤:objective   getter   規範   setter   

命名規範:

對於存取方法的命名,Cocoa有自己的慣例。在為自己的類編寫存取方法時,應當遵守這些慣例,這樣你和其他人讀代碼時才不會感到困惑。
setter 方法根據它所更改的屬性的名稱來命名,並加上首碼set。下面是幾個setter方法的名稱:setEngine:、setStringValue:、setFont:、setFillColor:和setTextLineHeight:。
getter 方法則是以其返回的屬性名稱命名。所以上面的 setter方法所對應的 getter 方法應該是 engine、stringValue、font、fillColor 和 textLineHeight。不要將 get 用作 getter 方法的首碼。例如,方法 getStringValue 和 getFont 就違反了命名慣例。有些語言(如 Java)有不同的命名慣例,它們用 get 做存取方法的首碼。但是如果編寫 Cocoa 程式,請不要這麼做。

說明:

get 這個詞在 Cocoa 中有著特殊的含義。如果 get 出現在 Cocoa 的方法名稱中,就意味著這個方法會將你傳遞的參數作為指標來返回數值。例如,NSData (Cocoa中的類,它可以儲存任意序列的位元組)中有一個 getBytes: 方法,它的參數就是用來儲存位元組的記憶體緩衝區的地址。而 NSBezierPath(用於繪製貝茲路徑)中的 getLineDash:count:phase: 方法則有三個指標型參數 :指向儲存虛線樣式的浮點型數組的指標,指向儲存虛線樣式中元素個數的整數型資料的指標,以及指向虛線起始點的浮點型資料的指標。
如果你在存取方法的名稱中使用了 get,那麼有經驗的 Cocoa 編程人員就會習慣性的將指標當做參數傳入這個方法,當他們發現這不過是一個簡單的存取方法時就會感到困惑。最好不要讓其他編程人員被你的代碼搞得一頭霧水。

例代碼:

.h 檔案:

////  Person.h//  OC_Practice_03////  Created by  on 15/4/1.//  Copyright (c) 2015年 . All rights reserved.//#import <Foundation/Foundation.h>@interface Person : NSObject{    NSString *_name ;    NSString *_gender ;    int       _age ;}//setter設定器- (void)setName: (NSString *)name ;- (void)setGender: (NSString *)gender ;- (void)setAge: (int)age ;//getter訪問器- (NSString *)name ;- (NSString *)gender ;- (int)age ;// 初始化- (instancetype)initWithName: (NSString *)name                      gender: (NSString *)gender                         age: (int)age ;- (void)eat ; // 吃- (void)sleep ; // 睡@end  //  Person

.m 檔案:

////  Person.m//  OC_Practice_03////  Created by  on 15/4/1.//  Copyright (c) 2015年 . All rights reserved.//#import "Person.h"@implementation Person- (void)setName:(NSString *)name {    _name = name ;} // setName- (void)setGender:(NSString *)gender {    _gender = gender ;} // setGender- (void)setAge:(int)age {    _age = age ;} // setAge- (NSString *)name {    return  _name ;} // getName- (NSString *)gender {    return _gender ;} // getGender- (int)age {    return _age ;} // getAge- (instancetype)initWithName:(NSString *)name                      gender:(NSString *)gender                         age:(int)age {    if ( self = [super init] ) {        _name = name ;        _gender = gender ;        _age = age ;    }    return self ;} // initWithName- (void)eat {    NSLog( @"%@在餐廳吃飯!", _name ) ;} // eat- (void)sleep {    NSLog( @"%@在睡覺!", _name ) ;} // sleep@end  //  Person

Objective-C----setter 和 getter

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.