2013-08-06 1 views
0

Я пытаюсь получить доступ к массиву, созданному в ViewController.m из AppDelegate.m, используя метод ViewController. При попытке отправить сообщение в AppDelegate.m, XCode дает мне ошибку,Внешне доступ к переменной из ViewController

"Нет известного метода класса для селектора ..."

В ViewController.h:

-(NSMutableArray *)getButtonArray; 

В ViewController.m:

- (NSMutableArray *)getButtonArray; 
{ 
    NSMutableArray *buttonArray = [[NSMutableArray alloc] init]; 

    for (ElementButton *button in [self.view subviews]) { 
     [buttonArray addObject:button]; 
    } 
    return buttonArray; 
} 

В AppDelegate.m:

NSMutableArray *buttonArray = [ViewController getButtonArray]; 

Я не понимаю, почему я не могу назвать этот метод на ViewController, поскольку я объявил его в своих файлах классов. Если по какой-то причине это недопустимо, есть ли другой способ добиться такого же эффекта?

+0

Просто комментарий об условных обозначениях. Рекомендации iOS/Objective C для имен методов должны называть ваши получатели следующим образом: '- (NSMutableArray *) buttonArray;' Setters должны иметь имя: '- (void) setButtonArray: (NSMutableArray *) buttonArray;' – stevekohls

ответ

2

getButtonArray - метод экземпляра. Итак, вам нужно создать экземпляр для него.

ViewController *controller = [[ViewController alloc] init]; 
NSMutableArray *buttonArray = [controller getButtonArray]; 
Смежные вопросы