今日はObjective-Cのクラスで、プロパティ(@property)宣言した値をprivateのように扱う方法めもです。
MyClass.h
@interface MyClass { // インスタンス変数 NSString *string; } @end
MyClass.m
#import "MyClass.h" // 無名カテゴリ宣言 @interface MyClass() @property (nonatomic, retain) NSString *string; @end @implementation MyClass @synthesize string; @endこれでオッケー。
ヘッダファイルにプロパティを書いてしまうと、外部からそのプロパティにアクセス出来てしまうことが用意に想像できてしまい、意識せずに外部からそのプロパティへアクセスしてしまいがちです。
プログラマが一人であったり、小規模なプロジェクトであれば問題ありませんが、「このインスタンス変数は外部からアクセスしちゃあかんでぇ」と意識させたい場合などにはこの方法が便利です。
ただし、Objective-Cの特性で外部からのアクセスを完全に遮断することは出来ず、やろうと思えばアクセス出来ちゃいますが、こればかりはどうしようもありません。あしからず。
以上でぇぇぇぇえぇす。
0 件のコメント:
コメントを投稿