Как мне создать и вызвать базовый метод в Objective-C? - PullRequest
0 голосов
/ 31 января 2012

Я пытаюсь сделать основной метод (функцию) в цели C и получаю некоторые ошибки, вот код:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    [self setupWebView];
}

- (void)setupWebView {
    NSLog(@"Testing"); 

}

Я получаю эту ошибку:

Тип получателя «Чтение» для сообщения экземпляра не объявляет метод с селектором «setupWebView»

Есть идеи, что я делаю не так?

Ответы [ 2 ]

5 голосов
/ 31 января 2012

Компилятор согласится с тем, на что реагирует получатель, только если он видел, что метод объявлен для класса выше строки источника. Поэтому либо объявите метод в объявлении @interface вашего класса, либо в объявлении какой-либо категории, либо в реализации вашего класса.

Если вы не хотите экспортировать -(void)setupWebView в общедоступную @interface, проще всего будет иметь расширение класса @interface в вашем файле .m:

// additional internal methods for my class
@interface MyClass ()

- (void)setupWebView;

@end

@implementation MyClass

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    [self setupWebView];
}

- (void)setupWebView {
    NSLog(@"Testing"); 

}

@end
4 голосов
/ 31 января 2012

Вы объявили -(void)setupWebView в заголовке для своего класса? Кажется, что компилятор не думает, что ваш класс его реализует. Если вы добавите его в свой заголовок, это должно решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...