我有一个服务器,我在其中请求一些数据。
我正在检查是否存在具有特定名称的图像并且我需要返回一个 BOOL 值(是或否),但我不知道该怎么做,因为异步请求在完成时会调用回调,所以当它的完成方法很久以前就完成了,它不返回 BOOL 值,我不使用同步请求,因为它阻塞了主线程。
这是我的代码(我知道这是错误的,但我还是写了它来展示我想做的一个例子,因为我的英语不太好):
- (BOOL)imageDoesExistsOnTheServer:(NSString *)imageName {
BOOL exists;
NSString * query = [[NSString alloc] initWithFormat:@"request=IMAGE&imageName=%@", imageName];
DREasyURLRequest * imageExistsRequest = [[DREasyURLRequest alloc] initForSendDataToServerWithURLString:@"http://xxxxx.xxxxx/file.php" query:query];
[imageExistsRequest sendAsynchronouslyWithCompletionForStringAsResponse:^(NSString *receivedResponse) {
if ([receivedResponse isEqualToString:@"YES"]) {
__block BOOL exists = YES;
} else {
__block BOOL exists = NO;
}
}];
return exists;
}
(DREasyURLRequest 是我为保存一些代码而创建的 NSMutableURLRequest 的子类,但 sendAsynchronouslyWithCompletionForStringAsResponse: 与异步 NSMutableURLRequest 方法完全相同。
你们能帮帮我吗?
PD:我知道,这段代码看起来很糟糕哈哈哈,但我不知道该怎么做......