Несовместимые типы указателей блоков - Objective-c - PullRequest
0 голосов
/ 23 октября 2019

Я хочу вызвать следующий код с оператором возврата в главном потоке, но я получил ошибку ниже.

Несовместимые типы указателей блоков, передающие 'NSString * (^) (void)' параметру типа 'dispatch_block_t _Nonnull '(он же' void (^) (void) ')

Ниже приведен мой код.

NSString *hash = [AGMobileService accessTokenHashForDate:date withParameters:[NSArray new]];


+ (NSString *)accessTokenHashForDate:(NSDate *)date withParameters:(NSArray *)params{

    dispatch_async(dispatch_get_main_queue(), ^{
      NSString *accessToken = ((AppDelegate *)[[UIApplication sharedApplication] delegate]).loginProfile.accessToken;

      NSString *paramsStr = [params componentsJoinedByString:@""];
      NSString *hashStr = [NSString stringWithFormat:@"%@%@%@%@", [CommonUtil IMEI], [date agileHashFormattedString], (!paramsStr) ? @"" : paramsStr, accessToken];
      return [AGMobileService computeHash:hashStr usingHash:HASH_SALT];
    });
}

+ (NSString *)computeHash:(NSString *)text usingHash:(NSString*)hashSalt {

    NSString *textToEncode = [NSString stringWithFormat:@"%@%@", hashSalt, text];
    NSData *data = [textToEncode dataUsingEncoding:NSUTF8StringEncoding];
    unsigned char hash[CC_SHA256_DIGEST_LENGTH];
    if ( CC_SHA256([data bytes], (int) [data length], hash) ) {
        NSData *sha256 = [NSData dataWithBytes:hash length:CC_SHA256_DIGEST_LENGTH];
        return [sha256 base64EncodedString];
    }
    return nil;
}

1 Ответ

0 голосов
/ 23 октября 2019

Я сталкивался с такими вещами, я просто удаляю код возврата в блоке отправки, но я не знаю причину. Поэтому я также хочу знать причину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...