現在、私はデリゲートを使用しているiOSアプリケーションに取り組んでおり、次のようなものを実装しています:
@protocol Hello <NSObject>
@required
- (void)update:(NSDictionary *)data;
@end
@interface NotificationHandler : NSObject
{
id <Hello>delegate;
}
- (void)sendData;
@end
特定の通知が発生すると、メソッドが呼び出され、のメソッドがsendData
呼び出されます。update
delegate
すべてが正常に機能しています。ディクショナリでは、いくつかの特別なデリゲートに特定の値を渡す必要があります。だから私は次のようなヘッダーをインポートしています:
#import "Special1.h"
#import "Special2.h"
- (void)sendData
{
if([_delegate isKindOfClass:[Special1 class]])
{
//special class 1
NSDictionary *dict = //initialize with parameters and values
[(Special1 *)_delegate update:dict];
}
else if([_delegate isKindOfClass:[Special2 class]])
{
//special class 2
NSDictionary *dict = //initialize with parameters and values
[(Special2 *)_delegate update:dict];
}
}
ここでの問題は、ここにすべての特別なクラスをインポートする必要があることです。クラスをインポートせずにこれを行う方法はありますか?