Я хочу вызывать метод за другим, асинхронный:
[[User sharedUser] loginWithUser:aUser andPassword:aPassword then:^
{
User *user = [User sharedUser];
NSLog(@"Hello, %@", user.name);
[self.navigationController popViewControllerAnimated:YES];
}
Итак, loginWithUser:andPassword:then:
запускает асинхронный NSUrlRequest
, и я хотел бы вызвать блок обратного вызова в connectionDidFinishLoading:
Метод делегата.
Прототип для моего метода:
- (void)logIn:(NSString *)email password:(NSString *)password then:(void (^)(void))callback
Мой User
класс имеет переменную экземпляра _callback
@interface User : NSObject
{
void (^_callback)(void);
}
Я храню его вмой метод входа в систему такой:
_callback = Block_copy(callback);
и просто сделайте _callback()
в моем методе делегата подключения URL. Почему происходит сбой моего приложения при вызове? .Если в обратном вызове нет упоминания self
(просто NSLog
), приложение не вылетает
Я могу сделать это более классическим способом с user.delegate = self
и LoginDelegate
протокол, но я думал, что это было более элегантно.