Controller 到 Controller 的回调响应
Callback response from ControllerB to ControllerA
我需要为我的一个项目制作 SDK,我需要做的是进行搜索 class 其中 return 来自网络的响应 API,
我正在寻找这样的东西。
SearchController * sc = [[SearchController alloc] initWithSearchText:@"google"];
每次更改 textField
文本时都会调用此方法,我得到的响应应该是块状的。
如有任何帮助和参考,我们将不胜感激。
您可以在 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
,NSString
等
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 api 块
SearchController * sc = [[SearchController alloc] init];
[sc searchWithText:@"google" Results:^(id results, NSError *error) {
//block with api response
}];
我需要为我的一个项目制作 SDK,我需要做的是进行搜索 class 其中 return 来自网络的响应 API,
我正在寻找这样的东西。
SearchController * sc = [[SearchController alloc] initWithSearchText:@"google"];
每次更改 textField
文本时都会调用此方法,我得到的响应应该是块状的。
如有任何帮助和参考,我们将不胜感激。
您可以在 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
,NSString
等
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 api 块
SearchController * sc = [[SearchController alloc] init];
[sc searchWithText:@"google" Results:^(id results, NSError *error) {
//block with api response
}];