2016-05-08 7 views
1

パブリックメソッド(以下の理由)ではなく、プロパティを使用してアセンブリでアセンブルできるオブジェクトをすべて定義したいと考えています。私が見る問題は、私が[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ランタイムは、戻り値の型に関する情報を提供しません(オブジェクトの場合のみ)ので、特定のプロトコルに準拠しているかどうかわかりません。

私はそれを行うことはできません何らかの理由はありますか?これは既知のバグです?それは意図的にそのように行われている?

答えて

0

私は、アセンブリがインスタンス化取得されたとき。私は、問題を引き起こしているものを見つけたと思います、アセンブリのすべてのプロパティもアセンブリとして扱われています。私はAssemblieそれらのプロパティが他のアセンブリである場合にのみ、プロパティを持つ必要があります。台風がアセンブリ以外のプロパティを持つアセンブリを持つことを許可しない理由はありますか?存在しない場合は、プロパティがTyphoonAssemblyのサブクラスかどうかを確認するバグを提出する必要がありますか?

私は自分のワークスペースに変更を行ったし、今私は何の問題もなく私の財産のすべてのゲッターを呼び出すことができ、そのもうアセンブリとしての私のプロパティを識別していない、それだけでXYZPropertyClassです:)

関連する問題