我正在深入研究 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
...但我不知道如何将回调过程转换为块。无论如何可以在这里给我一些方向吗?
提前感谢您的智慧!
顺便说一句,我只是在没有测试的情况下编写了代码,所以如果有任何拼写错误,我深表歉意。