Loose-Info.com
Last Update 2013/02/13
TOP - Objective-C - クラス - アクセサ

インスタンス変数の参照や変更を行う場合のアクセサメソッドを定義方法は以下の通りです。
プロパティ(@property, @synthesize)を利用することもできます。詳しくはObjective-C プログラミング言語などを参照してください。


インスタンス変数の値を参照するメソッド

インターフェイス部
- ( 名前1 ) 名前2 ;

名前1
インスタンス変数の型名
名前2
インスタンス変数名

実装部(例)
- ( 名前1 ) 名前2 { return 名前2 ; }

名前1
インスタンス変数の型名
名前2
インスタンス変数名

インスタンス変数の値をセットするメソッド

インターフェイス部
- ( 名前1 )set 名前1 ;

名前1
インスタンス変数の型名
名前2
インスタンス変数名の1文字目を大文字にした文字列

実装部(例)
- (void)set 名前1 :( 名前2 ) 名前3 ; { 名前4 = 名前3 ; }

名前1
インスタンス変数名の1文字目を大文字にした文字列
名前2
インスタンス変数の型名
名前3
インスタンス変数にセットする値となる引数名
名前4
インスタンス変数名

(例)

MyTestClass.h
#import <Foundation/Foundation.h> @interface MyTestClass : NSObject { NSString *messageString; } - (id)initWithMessage: (NSString *)msgString; - (NSString *)messageString; - (void)setMessageString:(NSString *)msgString; @end

MyTestClass.m
#import "MyTestClass.h" @implementation MyTestClass - (id)initWithMessage: (NSString *)msgString { if (self = [super init]) { messageString = [[NSString alloc] initWithString:msgString]; } return self; } - (NSString *)messageString { return messageString; } - (void)setMessageString:(NSString *)msgString { messageString = msgString; } @end

main.m
#import "MyTestClass.h" int main (void) { MyTestClass *mtc = [[MyTestClass alloc] initWithMessage:@"初期設定時のメッセージ"]; NSLog(@"変更前messageString : %@", [mtc messageString]); [mtc setMessageString:@"変更後のメッセージ"]; NSLog(@"変更後messageString : %@", [mtc messageString]); return 0; }

実行結果
変更前messageString : 初期設定時のメッセージ 変更後messageString : 変更後のメッセージ