У меня есть вспомогательный класс, в котором есть функция, которая делает вызов API, получает некоторые данные и форматы json и возвращает массив. Мой TableViewController пытается получить доступ к этому возвращаемому массиву. Да, как вы и ожидали, мой метод tableviewcontroller viewDidLoad
не может получить доступ к объекту массива, возвращаемому моим вспомогательным классом.
@interface MyHelperClass : NSObject
@property (nonatomic,retain)NSArray *myArray;
@end
@implementation MyHelperClass
@synthesize myArray;
- (NSArray *) returnArray{
// make api calls and return array
return myArray;
}
@end
@implementation MyTableViewController
{
- (void)viewDidLoad
{
[super viewDidLoad];
MyHelperClass *myhelper = [[MyHelperClass alloc]initWithPath:getSpacePath];
allTopics = (NSArray *)[myhelper returnArray];
NSLog(@"Load my Array%@",allTopics);
}
}
Мой вопрос: нужно ли мне реализовывать делегата для передачи данных или есть ли другой способ передать данные моему контроллеру представления?
P.S: я не хочу использовать глобальную переменную
myArray
равно нулю, и вам действительно нужно продолжать использовать асинхронные вызовы. Помимо шаблона делегата, вы можете использовать API уведомлений или блоки. - person A-Live   schedule 15.04.2013