我正在关注this answer来测试我在类中定义的异步方法。但是我无法为它添加完成处理程序定义。有什么帮助吗?
我得到了一个定义如下的方法:
//.h
- (void)loadData;
//.m
- (void)loadData{
NSString *urlString =
[NSString stringWithFormat:@"www.example.com/json", kResultsLimit ];
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
}
}];
我现在想在loadData方法定义中添加一个完成处理程序..如何在.h和.m文件中添加它?
.h:
的例子 - (void)loadData+completionhandler;
答案 0 :(得分:3)
@ AdamPro13为您提供了如何操作的示例。
我的猜测是,你正在努力解决如何定义一个以块为参数的方法。这令人困惑。
我使用此站点(使用较少的SFW URL名称)来确定在不同情况下使用块的语法:
关键是这一部分:
将块作为方法参数传递:
- (void)someMethodThatTakesABlock:(returnType (^)(parameterTypes))blockName;
答案 1 :(得分:1)
在您的.h
中声明它:- (void)loadDataWithCompletion:(void(^)(id))completion;
。
然后,您可以使用completion(data);