0

Objective-C では、変数へのアクセスは@public, @private, @protected(デフォルト) および@package.. の 3 つのタイプに制限されています。これらのアクセス修飾子により、4 つの状況で順番に変数にアクセスできます。

1-どこからでも変数にアクセスします。

2- クラス内でのみ変数にアクセスします。

3-クラスとそのサブクラスのどこからでも変数にアクセスします。

4- フレームワークのどこからでも変数にアクセスします。

私の質問は: 一部のクラスにアクセス可能で、他のクラスにはアクセスできない変数を定義する方法はありますか? (つまり、変数のカスタマイズされたスコープ)

4

3 に答える 3

1

クラス拡張を使用して、より柔軟なアクセス制御を作成できます。

// MyClass.h
@interface MyClass : SomeSuperclass {
    int ivar;
}
@end

// MyClass-Custom.h
#include "MyClass.h"
@interface MyClass () {
    int anotherIvar;
}
@end

これで、anotherIvar は #include MyClass-Custom.h を含むコードからのみアクセスできるようになります。同じクラスにさらにクラス拡張を作成して、追加のアクセス グループを取得できます。

于 2013-04-01T13:50:21.520 に答える