Я пытаюсь написать функцию в ObjectC, которая возвращает класс с 3 свойствами. Для каждого свойства программа должна извлекаться с удаленного сервера (AFNetworking now), мне интересно, какое хорошее решение для этой проблемы? Вот текущая структура функции Я пишуИспользование AFNetworking для извлечения данных из нескольких ресурсов и возврата
- (MyClass *)fillInClassAndReturn {
MyClass *myClass = [MyClass new];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"Url1"
parameters:parameter1
success:^(AFHTTPRequestOperation *operation, id responseObject) {
myClass.property1 = responseObject;
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
myClass.property1 = nil;
}];
[manager GET:@"Url2"
parameters:parameter2
success:^(AFHTTPRequestOperation *operation, id responseObject) {
myClass.property2 = responseObject;
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
myClass.property2 = nil;
}];
[manager GET:@"Url13"
parameters:parameter3
success:^(AFHTTPRequestOperation *operation, id responseObject) {
myClass.property3 = responseObject;
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
myClass.property3 = nil;
}];
return myClass;
}
Эта функция возвращает myClass
сразу после того, как эта функция вызывается, все три свойства будут nil
в это время и когда соответствующие данные извлекаются из сервера, он будет заполнен. Таким образом, люди, которые используют эту функцию, должны будут определить KVO для возвращаемого значения функции и получать уведомление при изменении значения. Но вот проблемы с этим дизайном, он не будет работать, если возвращаемое значение NSArray/NSMutableArray
вместо MyClass
Итак, есть ли лучший дизайн, чтобы я мог позаботиться об этой ситуации? Если этот дизайн не так ужасен, как обрабатывать корпус NSArray*
?