我需要为我的一个项目制作SDK,我需要做的是创建一个从Web API返回响应的搜索类,
我正在寻找类似的东西。
SearchController * sc = [[SearchController alloc] initWithSearchText:@"google"];
每当我更改textField
文本时,都会调用此方法,并且我得到的响应应该是阻止的。
任何帮助和参考将不胜感激。
答案 0 :(得分:0)
您可以在SearchController
中创建一个阻止方法,并获得所需类型的回复。
-(void)executeSearchRequestWithHandler:(void (^)(BOOL result))completionHandler {
//Do your api calling and than handle completionHandler
completionHandler(YES);
//You can set completionHandler type that you want like NSArray,NSString,NSDictionary etc
}
现在像这样调用这个方法。
[sc executeSearchRequestWithHandler:^(BOOL result) {
if (result) {
}
}];
注意:这里我创建了带有BOOL
参数的块,您可以根据NSArray
,NSDictionary
,{{1}等响应设置所需的参数类型等等。
答案 1 :(得分:0)
SearchController.h
typedef void (^SearchHandler)(id results,NSError *error);
@interface SearchController : NSObject
{
SearchHandler searchBlock;
}
-(void)searchWithText:(NSString *)strText Results:(SearchHandler)searchResult;
SearchController.m
-(void)searchWithText:(NSString *)strText Results:(SearchHandler)searchResult
{
searchBlock = [searchResult copy];
//call api for text search
}
-(void)getResponseOfApi
{
//code where get api response
searchBlock(apiResonse,apiError);
}
使用块
调用SearchController apiSearchController * sc = [[SearchController alloc] init];
[sc searchWithText:@"google" Results:^(id results, NSError *error) {
//block with api response
}];