4

私はObjective-cフレームワークを作成しようとしていますが、フレームワーク内でのみメソッドとプロパティを表示したいと考えています。実装ファイル内のクラス拡張でそれらを定義できることは知っていますが、他のクラスからはアクセスできなくなります。

私が考えていた方法の1つは、MyClass + Internalsなどのカテゴリを定義し、そのヘッダーを非公開にすることでした。ただし、MyClass.hヘッダーを公開します。これを行うためのより良い方法があるかどうか疑問に思いました。また、メソッドだけだと思っていたカテゴリ内でプロパティを定義できるかどうかもわかりません。提案やフィードバックをありがとう。

4

1 に答える 1

3

「Foo」という名前のクラスがあるとします。次に、「Foo_Framework.h」で次を作成します。

@interface Foo()
@property ....;
- .... method ....
@end

次に、「Foo_Framework.h」が。のにインポートされていることを確認し@implementation Fooます。これにより、クラスFooは、上記のヘッダーファイルにある拡張インターフェイスを使用してコンパイルされます。そのヘッダーは、フレームワーク全体で使用できます。上記のフレームワークの外部で利用できるようにしないでください。

カテゴリ内で(合成された)プロパティを宣言できないのは正しいです。これが、クラス拡張を作成する主な動機の1つであり、その一例が上記の例です。

于 2012-10-24T21:54:06.653 に答える