Ios 具有完成处理程序的方法
我在一个类中创建了一个方法:Ios 具有完成处理程序的方法,ios,objective-c,block,Ios,Objective C,Block,我在一个类中创建了一个方法: - (void)getTableData:(NSString *)URL withCompletionHandler:(void (^)(NSString *))handler{ __block NSDictionary *JSON; [manager POST:urlString parameters:jsonDict success:^(AFHTTPRequestOperation *operation, id responseObject){ JS
- (void)getTableData:(NSString *)URL withCompletionHandler:(void (^)(NSString *))handler{
__block NSDictionary *JSON;
[manager POST:urlString parameters:jsonDict success:^(AFHTTPRequestOperation *operation, id responseObject){
JSON = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error];
handler(JSON);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error %@",error);
// handle failure
}];
}
然后在另一节课上用
[ObjOfSecondClass getTableData:BILL withCompletionHandler:^(NSString* returnString)handler{
}];
它在处理程序中显示预期的表达式错误。这是一个表达式错误,因为您以错误的方式使用它 在
viewDidLoad
[ObjOfSecondClass getTableData:BILL withCompletionHandler:^(NSString* returnString){
}];
处理程序
用于块实现从调用它们的位置返回值
注意-在块定义中将字符串替换为字典,因为您是从API而不是字符串获取字典的
您想在回调中得到什么?NSDictionary*JSON;我还没有真正理解你的问题。你能更具体一点吗?如果我没弄错的话,你想创建一个静态方法。静态方法是通过使用
+
标记:+(void)getTableData:(NSString*)URL withCompletionHandler:(void(^)(NSString*))处理程序定义的代码>将完成处理程序定义更改为withCompletionHandler:(void(^)(nsDictionary*)句柄。当前仅返回字符串。