我有函數返回類型是'布爾'和函數體調用HTTP請求。如何從塊體返回函數值?
如果數據存在,我想返回'真'。我想同步管理。
- (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)'
**不,你不希望它同步**。即使你願意,這也是一個壞主意,它會在網絡通話中阻止你的應用程序(想象地鐵中的人,沒有網絡,你的應用程序必須被殺死)。檢查我的答案,我更新它以適應您的需求。 – AnthoPak
@AnthoninC。感謝您指出在我的情況下同步通話的黑暗面... –
沒問題的朋友,很高興有幫助。 – AnthoPak