2014-09-12 5 views
0

Это мой первый вопрос в stackoverflow.com. Я пытаюсь вызвать метод [- (void) alterTime] из ViewController.m в AppDelegate.m. Да, я #imported "ViewController.h" в AppDelegate.h. Импорт контроллера в AppDelegate.m не имеет значения. Кроме того, «Фоновая выборка» включена.Метод UIViewController от AppDelegate

Здесь пока код внутри AppDelegate.m, что я пытаюсь выполнить:

- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler 
{ 
    NSLog(@"Current Time Altered"); 

    //Get current view controller 
    ViewController *mainViewController = (ViewController *)self.window.rootViewController; 
    [mainViewController alterTime]; 

    //Cleanup 
    completionHandler(UIBackgroundFetchResultNewData); 
} 

Это фрагмент кода дает мне проблемы:

[mainViewController alterTime]; 

Он заявляет: «Нет видимых @interface для «ViewController» объявляет селектор «alterTime».

+0

Показать 'ViewController.h' –

ответ

0

Так что ошибка означает, что не удалось найти имя метода (селектор), в классе ViewController.

Убедитесь, что в вашем ViewController заголовке указан alterTime, который был объявлен там, что делает его общедоступным.

Если это нормально, то дважды проверьте, чтобы убедиться, что ваш rootViewController имеет тип (принадлежит) ViewController

+0

Большое спасибо. На этот раз моя невнимательность действительно подвела меня. – Krekin

+0

Ничего страшного :) –

0

Объявление - (void)alterTime в вашем файле ViewController.h.

@interface ViewController : UIViewController 

- (void)alterTime; 

@end 
+0

Sheesh, моя невнимательность будет конец меня. Я чувствую себя неловко за то, что не видел этого себя. Большое спасибо. – Krekin

Смежные вопросы