5

動的ランタイムを使用してラップされたオブジェクトにメッセージを転送するラッパー クラスを作成しています。forwardInvocation:

ただし、型チェッカーは、メソッドがラッパー クラスに実装されていないと不平を言うようになりました。これは一般的には良いことです。

そこで、型チェッカーを満たすために、ラッパーのヘッダーにいくつかのメソッド宣言を記述しようと考えました。定義ではなく、宣言だけが必要であることに注意してください。

ただし、@propertyディレクティブをコピーすると、ディレクティブは宣言されるだけでなく、定義もされます。このようにして、メソッド転送よりも優先されるため、転送が中断されます。

@propertyゲッターとセッターを自動的に合成しないように宣言する方法はありますか? 私はこの機能が気に入っているので、クラス単位でのみ無効にして、残りのプロジェクトではそのままにしておきたいと思います。少し似て-fno-objc-arcいます。

PS clang -v=>$ Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)

4

1 に答える 1

6

追加すると

@dynamic yourProperty;

クラスの実装に追加すると、そのプロパティに対してインスタンス変数もアクセサ関数も合成されません。

于 2013-06-25T10:49:20.320 に答える