Этот вопрос похож на типы NSError для iOS, но описанное там решение не сработало, и я считаю, что это не совсем то, что мне нужно.
У меня есть метод, который выполняет асинхронный вызов, а затем вызывает блок завершения. Когда я пытаюсь передать NSError ** в блок завершения, я получаю следующую ошибку:
Отправка «NSError *const __strong *» в параметр типа 'NSError
*__autoreleasing *' изменяет свойства сохранения/освобождения указателя
Код выглядит следующим образом:< /p>
Код: Выделить всё
+(void) agentWithGUID:(NSString *) guid completion:(void (^)(AKAgentProfile * agentProfile, NSError ** error)) completionBlock
{
dispatch_queue_t requestQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(requestQueue, ^{
NSString * parameterizedUrl = [AKAgentProfileEndPoint stringByAppendingString:guid];
NSURL *url = [NSURL URLWithString:parameterizedUrl];
NSData *data = [NSData dataWithContentsOfURL:url];
NSError * error = nil;
AKAgentProfile * agentProfile = [[[AKAgentFactory alloc] init] agentProfileWithData:data error:&error];
dispatch_async(dispatch_get_main_queue(), ^{
completionBlock(agentProfile,&error);
});
});
}
Источник: https://stackoverflow.com/questions/277 ... utoreleasi
Мобильная версия