自分のヘッダーファイルmyDelegate.h内にあるデリゲートがある場合。次に、デリゲートプロトコルを実装するクラス(ClassOne)があります(デリゲート関数を実装しています)。次に、myDelegateのインスタンス変数を持つ別のクラス(ClassTwo)を作成します。この変数を使用して、ClassOneにある関数を呼び出すことはできますか?ここでObjective-Cデリゲートメソッドが別のクラス内にあるクラスからデリゲートメソッドを呼び出す
はコードです:
//myDelegate.h
@protocol myDelegate <NSObject>
- (BOOL)myFunction:(NSString*)sString;
@end
//ClassOne.h
@interface ClassOne : NSObject <myDelegate> {
}
- (BOOL)myFunction:(NSString*)sString;
@end
//ClassOne.m
#import "ClassOne.h"
@implementation ClassOne
- (BOOL)myFunction:(NSString*)sString
{
//do stuff
}
@end
//ClassTwo.h
#import "myDelegate.h"
@interface ClassTwo : NSObject {
id<myDelegate> del;
}
@property (nonatomic, retain) id<myDelegate> del;
@end
//ClassTwo.m
#import "ClassTwo.h"
@implementation ClassTwo
- (void)aFunction:(NSString*)string
{
[del myFunction:string];
}
@end
クラスが既にプロトタイプを実装しているので、デリゲートメソッドをヘッダーファイルに追加する必要はありません –