OK、それで、 Good Programming Practicesに関するいくつかの記事を読んでいて、クラスのすべての要素を公開することは良い考えではないという声明に出くわしました..別名カプセル化の概念。
現在、Objective C では、クラスの要素を作成するときに、次のことを行います。NSMutableArray を検討してください。
@property (nonatomic, retain) NSMutableArray* myArray;
なぜ私はこれを行うのですか?
Retain プロパティを myArray に与えるため、より単純なメモリ管理サイクルを提供します。後で、viewDidLoad で myArray を次のように初期化します。
self.myArray = [NSMutableArray arrayWithCapacity:0];
後でDeallocで...
self.myArray = nil;
他に何が起こるか
このプロパティを指定し、myArray を .m ファイルに合成することで、無意識のうちに、クラスのすべての要素に対してパブリック ゲッターとセッターを作成しています。
また、Xib ファイルから自動生成された UI 要素には、同じ宣言が適用されます。
クラスのすべての要素に対して public の Getter と Setter を作成し続けるのは得策ではありません。
したがって、カプセル化はまったく適用されません。ここで間違っている場合は修正して、解決策を教えてください!
ありがとう!