2017-09-26 13 views
0

同じタイプの別のカテゴリで実際にカテゴリのメソッドを呼び出すことが可能かどうかを知りたいと思います。私はそうしようとしましたが、うまくいかないようです。私はそれが適切な方法か、少なくともそれが可能であることを知りたいですか? EXのために目的C - 同じ種類の別のカテゴリからカテゴリのメソッドを呼び出すことはできますか?

CategoryAファイル

@implementation UIImage (UIImage+CategoryA) 

-(void)doThis { 
    NSLog(@"Something...."); 
} 

CategoryBファイル

#import "UIImage+CategoryA.h" 

@implementation UIImage (UIImage+CategoryB) 

-(void)someMethod { 
    [self doThis]; // Can I do this? 
} 


どれ議論/答え/洞察力は大歓迎です。

+1

「機能していない」とはどういう意味ですか? –

+1

それはうまくいくように見えます。あなたは何を得ているのですか? –

+0

コンパイラエラーが発生しました: 'UIImage'の表示されない@interfaceはセレクタ 'doThis'を宣言します。 –

答えて

1

カテゴリは元のクラスにメソッドを追加します。これはObjective-Cなので、アクセス制御の概念はありません。一度存在すれば、誰にでもアクセスできます。したがって、クラスのインスタンスへのポインタとそのカテゴリに関する知識を持つ人が誰でも呼び出すことができます。これには、同じクラスの他のカテゴリで実装されたメソッドが含まれます。

はい、可能です。

+0

シュート。私が疑っていたように、問題は不適切なXcodeのインデックス作成にありました。 Xcodeをクリーニングして再起動したら、すべてがうまくいった(手のひらの手のひら)。基本に固執する必要があります。回答ありがとうございます。 :) –

関連する問題