パブリックメソッド(以下の理由)ではなく、プロパティを使用してアセンブリでアセンブルできるオブジェクトをすべて定義したいと考えています。私が見る問題は、私が[XYZAssembly getXYZProperty]
と呼んだとき、私のアセンブリはそれらのオブジェクトをアセンブルできないということです。私はこのルートを行く代わりに作成していますなぜTyphoonAssemblyが@Propertyとして提供されているオブジェクト
-(XYZPropertyClass *)getXYZProperty {
return [TyphoonDefinition withClass:[XYZPropertyClass class]];
}
:
@property (nonatomic, strong, getter=getXYZProperty) XYZPropertyClass *XYZProperty
そして、私の実装ファイル内:代わりに、私は私のヘッダファイルに例えばTyphoonDefinition: class='XYZPropertyClass', key='(null)', scope='Unknown
を取得していますXYZPropertyのインスタンスの@Propertiesのないパブリックメソッド?ここでの目標は、OBJCランタイムを使用して、プロパティのクラス、探している固有のプロトコル、その名前、アクセサセレクタなどを取得することです。この情報をすべて持っていると、基本的に[XYZAssembly performSelector(@selector(プロパティのセレクタが何であれ))] OBJCランタイムは、戻り値の型に関する情報を提供しません(オブジェクトの場合のみ)ので、特定のプロトコルに準拠しているかどうかわかりません。
私はそれを行うことはできません何らかの理由はありますか?これは既知のバグです?それは意図的にそのように行われている?