метод селектора никогда не вызывался в NSNotificationCenter - PullRequest
0 голосов
/ 06 февраля 2012

Я пытаюсь использовать NSNotificationCenter, и по какой-то причине метод селектора никогда не вызывается.

- (NewsItem *) loadNewsItemDetail:(NewsItem *)currentNewsItem
{
    self.newsItem = currentNewsItem;

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(DownloadNewsItem) name:@"connectionDidFinishLoadingComplete" object:nil];

    return self.newsItem;
}

- (void) DownloadNewsItem:(NSNotification *) notification
{
    NSString *urlString = [Configuration newsStreamAPIURL:plNewsAPIKey];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];

    (void)[[NSURLConnection alloc] initWithRequest:request delegate:self];
}


- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{       
    ...

    [[NSNotificationCenter defaultCenter] postNotificationName:@"connectionDidFinishLoadingComplete" object:nil];

}

Любая причина, по которой мой DownloadNewsItem никогда не будет вызываться на основании того, что я предоставил?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 06 февраля 2012

Вам нужно двоеточие в вашем методе селектора, потому что он принимает параметр (NSNotification в данном случае).

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(DownloadNewsItem:) name:@"connectionDidFinishLoadingComplete" object:nil];
1 голос
/ 06 февраля 2012

Вы забыли символ : после DownloadNewsItem

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(DownloadNewsItem:)
                                             name:@"connectionDidFinishLoadingComplete"
                                           object:nil];
...