这是我在stackoverflow.com上的第一个问题。 我试图从AppDelegate.m中的ViewController.m调用一个方法[ - (void)alterTime]。是的,我有#imported" ViewController.h"在AppDelegate.h中。将控制器导入AppDelegate.m没有任何区别。此外,"背景提取"是开。
以下是我试图实施的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 :(得分:0)
在- (void)alterTime
文件中声明ViewController.h
。
@interface ViewController : UIViewController
- (void)alterTime;
@end
答案 1 :(得分:0)
因此该错误意味着它无法在类ViewController
中找到方法名称(选择器)。
确保在ViewController
标题中确认了alterTime
方法,并将其公之于众。
如果可以,请仔细检查以确保您的rootViewController
属于ViewController
的<{1}}