Как решить 'RootViewController' может не отвечать '-parseXMLFileAtURL:' в Xcode 3.2.3 - PullRequest
2 голосов
/ 21 августа 2010

Я делаю простое приложение для RSS-канала iPhone и сталкиваюсь с этим:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    if ([stories count] == 0)
    {
        NSString * path = @"myfeedURL.rss";
        [self parseXMLFileAtURL:path]; <-------Error Here
    }
}

1 Ответ

2 голосов
/ 21 августа 2010

Метод определяется после его использования.Компилятор Objective-C является однопроходным, поэтому у него пока нет объявления для parseXMLFileAtURL:.Я представляю три способа исправить это:

Определите его, прежде чем использовать:

-(void)parseXMLFileAtURL:(...)... {
  ...
}

-(void)viewDidAppear:(BOOL)animated {
  ...
}

Вставьте в свой заголовок:

@interface RootViewController ...
...

-(void)parseXMLFileAtURL:(...)...;

@end

Или вставьте егопродолжение класса ":

@interface RootViewController()
-(void)parseXMLFileAtURL:(...)...;
@end

@implementation RootViewController
...

Продолжения класса полезны для таких вещей, как" частные "методы / свойства и протоколы - вы можете сделать @interface Foo()<BarDelegate>, чтобы избежать спагетти заголовков.: И название метода предполагает, что он принимает NSURL *, но вы передаете NSString *.Я бы либо изменил его на «URLString», либо заставил бы его взять NSURL *.

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