私はiOSプログラミングに飛び込み、ブロックの使い方を学んでいます。私は自分のプロジェクトで使用している厄介な、過剰に設計されたライブラリを持っており、それはすべてのデータ要求を処理するために単一のコールバックメソッドを使用しています...
@protocol SuckyClassDelegate <NSObject>
-(void)returnedSuckyData:(NSMutableDictionary*)data;
@end
@interface SuckyClass: NSObject
@property (nonatomic, weak) id<SuckyClassDelegate> delegate;
-(void)getSuckyData;
@end
@interface MyViewController: UIViewController <SuckyClassDelegate>
-(void)requestDataFromSuckyClass;
@end
SuckyClassのデータにアクセスする必要があるときにブロックを使用できるようにする、SuckyClassのラッパークラスを作成したいのですが、その方法がわかりません。こんなものが欲しいのですが…
@interface SuckyClassWrapper
- (void)requestDataWithSuccessBlock:(void(^)((NSMutableDictionary*)data))successBlock;
@end
@implementation MyViewController
-(void)requestDataFromSuckyClass {
SuckyClassWrapper *wrapper = [[SuckyClassWrapper alloc] init];
[wrapper requestDataWithSuccessBlock:^(NSMutableDictionary *data) {
NSLog(@"%@", data);
}
}
@end
...しかし、コールバックプロセスをブロックに変換する方法がわかりません。とにかくここで私にいくつかの方向性を与えることができますか?
よろしくお願いします!
ちなみに、テストせずにコードを作成しただけなので、タイプミスがあった場合はお詫び申し上げます。