У меня есть класс, который обрабатывает взаимодействие с внешним API, и я пытаюсь найти лучший способ разбить их на дескриптивные фрагменты.Лучший способ создания вложенных обратных вызовов в ObjectiveC
На данный момент, это выглядит примерно так:
- (BOOL) testCredentialsWithUsername:(NSString *)username password:(NSString *)password {
acUsername = username;
acPassword = password;
[self loadLoginPage];
return YES;
}
- (void)loadLoginPage {
[NSURLConnection sendAsynchronousRequest:...
completionHandler:^(...) {
[self logIntoMyAPI:response];
}];
}
- (void)logIntoMyAPI:(NSURLResponse *)response {
[NSURLConnection sendAsynchronousRequest:...
completionHandler:^(...) {
[self recieveLoginResponse:response data:data];
}];
}
- (void)recieveLoginResponse:(NSURLResponse *) response data:(NSData *)data {
if (...) {
NSLog(@"Logged into MyAPI!");
} else if (...) {
NSLog(@"Invalid username or password");
} else if (...) {
NSLog(@"Locked account");
} else {
NSLog(@"An unexpected error");
}
}
В принципе, я хочу, чтобы позвонить testCredtionalsWithUsername:password:
из моего View Controller и, возможно, с использованием блоков успех/провал, знаете результат.
Каков наилучший способ сделать это без привязки обратных вызовов к тесту testCredtionalsWithUsername:password:
?
Давида, может иметь отношение ... http://stackoverflow.com/questions/21775023/is-there-any -way-to-wait-here-in-code-just-like-a-empty-loop И не забывайте о группах отправки. http://stackoverflow.com/questions/10643797/wait-until-multiple-operations -executed-including-completion-block-afnetworki/10644282 # 10644282 – Fattie
@JoeBlow Теперь, когда я перешел на более сложные части приложения ... это именно то, что я хочу! Благодаря! –
фантастический !!!!! – Fattie