戻り値の型が「BOOL」で、関数本体のHTTP要求を呼び出す関数に関数があります。ブロックボディから関数値を返すにはどうすればよいですか?
データが存在する場合は、「True」を返します。私は管理したい同期して。
- (BOOL) randomFunction {
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithRequest:mutableRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
if (data) {
NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &error];
NSString *status = (NSString *)[JSON valueForKey:@"enabled"];
if ([status isEqualToString:@"true"]) {
// return YES; // ERROR
}
}
// return NO; // ERROR
}] resume];
}
ERROR:
Incompatible block pointer types sending 'BOOL (^)(NSData * _Nullable __strong, NSURLResponse * _Nullable __strong, NSError * _Nullable __strong)' to parameter of type 'void (^ _Nonnull)(NSData * _Nullable __strong, NSURLResponse * _Nullable __strong, NSError * _Nullable __strong)'
を**ありませんあなたは同期的にそれをしたくない:ここではサンプルコードです:
とそのようにそれを使用。あなたが望む場合でも、それは悪い考えです、それはWeb呼び出し中にあなたのアプリをブロックします(メトロの人々、ネットワークなし、あなたのアプリが殺されなければならないと想像してください)。私の答えを確認し、あなたのニーズに合わせて更新しました。 – AnthoPak
@AnthoninC。私の場合に同期呼び出しの暗い側面について指摘してくれてありがとう... –
問題のバディは、助けてうれしいです。 – AnthoPak