2014-09-12 74 views
0

這是我在stackoverflow.com的第一個問題。 我想從AppDelegate.m中的ViewController.m調用一個方法[ - (void)alterTime]。是的,我在AppDelegate.h中有#imported「ViewController.h」。將控制器導入AppDelegate.m沒有區別。此外,「背景獲取」處於打開狀態。來自AppDelegate的UIViewController方法

這裏是內部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]; 

它指出:「無可見'ViewController'的@interface聲明選擇器'alterTime'「。

+0

顯示'ViewController.h' – 2014-09-12 13:12:52

回答

0

因此,錯誤意味着它無法找到方法名稱(選擇器),在類ViewController

確保在您的ViewController標題中您已聲明alterTime方法,並將其公開化。

如果順利,再仔細檢查,以確保您的rootViewController的類型(母公司)ViewController

+0

非常感謝。這次我的疏忽真讓我失望。 – Krekin 2014-09-13 14:35:57

+0

沒有任何問題:)發生 – 2014-09-13 19:13:30

0

ViewController.h文件中聲明- (void)alterTime

@interface ViewController : UIViewController 

- (void)alterTime; 

@end 
+0

嘖,我的注意力不集中將是我的終點。我沒有看到我的自我感到尷尬。非常感謝你。 – Krekin 2014-09-13 14:35:20

相關問題