Программисты,Разрешено ли разрешение GCD dispatch_get_main_queue внутри блока?
Я делаю что-то принципиально неправильное со следующим кодом, поскольку он не работает при попытке получить основную очередь для запуска UIImageView? Это разрешено внутри блока? Мне нужно беспокоиться о том, чтобы получить основную очередь, или я должен просто запустить UIImageView непосредственно внутри блока? Если я установлю HUD.customView на нуль, это сработает. Я использую RestKit для отправки запроса POST и показывая MDProgressHUD, когда он выполняет вызов.
[objectManager.HTTPClient postPath:@"/items/create"
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject){
NSLog(@"Success!");
__block UIImageView *imageView;
dispatch_sync(dispatch_get_main_queue(), ^{
UIImage *image = [UIImage imageNamed:@"37x-Checkmark.png"];
imageView = [[UIImageView alloc] initWithImage:image];
});
self.HUD.customView = imageView;
self.HUD.mode = MBProgressHUDModeCustomView;
self.HUD.labelText = @"Success";
[self.HUD hide:YES afterDelay:1.5];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"Error: %@", [error localizedDescription]);
[self.HUD hide:YES afterDelay:2.0];
}];
Привет @Amar, могу ли я просто спросить, почему вы устанавливаете weakSelf = nil в своем блоке? Это освобождает память? Также, когда я пытаюсь сделать то же самое, я получаю ошибку компилятора: «Переменная не назначается (отсутствует спецификатор типа __block)». – amergin
@amergin Это назначение не обязательно. – Amar
Хорошо, спасибо @Amar - Я все еще пытаюсь размахивать блоками и ARC – amergin