Iphone didFinishLaunching从未被调用

Iphone didFinishLaunching从未被调用,iphone,objective-c,ios,Iphone,Objective C,Ios,我创建了一个新的基于窗口的项目,但不明白为什么它什么都没做。最终,我在didFinishLaunching之后放了一个NSLog,当我运行它时,它从未被记录。以下是我编写的所有代码: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"didFinishLaunching"); // Get t

我创建了一个新的基于窗口的项目,但不明白为什么它什么都没做。最终,我在didFinishLaunching之后放了一个NSLog,当我运行它时,它从未被记录。以下是我编写的所有代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSLog(@"didFinishLaunching");

    // Get the device object and turn proximity monitoring on
    UIDevice *d = [UIDevice currentDevice];
    [d setProximityMonitoringEnabled:YES];

    // Get the NSNotificationCenter object
    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

    // Sign up to receive notifications when the proximity state changes
    [nc addObserver:self selector:@selector(proximityChanged:) name:UIDeviceProximityStateDidChangeNotification object:d];
    NSLog(@"Observing...");

    [self.window makeKeyAndVisible];
    return YES;

}

- (void)proximityChanged:(NSNotification *)note {

    // Print out the changes of proximity state
    NSLog(@"Proximity Changed: %d", [[note object] proximityState]);

}

这就是我所写的全部内容,当我在模拟器或设备上运行它时,不会记录任何内容。有什么想法吗?

尝试删除生成/清除所有目标,删除生成/目录,并从模拟器和/或设备中删除应用程序。然后再运行一次


作为另一项检查,请尝试在ApplicationIDBecMeactive:中记录一些内容。无论是在初始启动还是从后台恢复,都将调用此方法

尝试删除生成/清除所有目标,删除生成/目录,并从模拟器和/或设备中删除应用程序。然后再运行一次


作为另一项检查,请尝试在ApplicationIDBecMeactive:中记录一些内容。无论是在初始启动还是从后台恢复,都将调用此方法

好吧,你说的是应用程序委托。显而易见的原因是,您的对象未设置为应用程序委托

看看苹果的文档,有很多方法可以做到这一点:

删除窗口的Interface Builder.xib文件中的应用程序委托绑定 将main.h中UIApplicationMain的第四个参数设置为非nil。 检查Interface Builder中的nib文件,查看是否已设置应用程序委托

参考文件

应用程序委托是您在中提供的自定义对象 应用程序启动时间,通常通过将其嵌入到应用程序的 主nib文件。此对象的主要任务是初始化 应用程序并在屏幕上显示其窗口。UIApplication对象 当发生特定的应用程序级事件时,还通知此对象 发生,例如由于以下原因需要中断应用程序时 由于用户 点击主页按钮

第四个参数标识应用程序委托的类。 应用程序代表负责管理高级应用程序 系统和自定义代码之间的交互。指定零 告诉UIKit应用程序委托对象位于 应用程序的主nib文件,这是构建应用程序的情况 使用Xcode模板


好吧,你说的是应用程序委托。显而易见的原因是,您的对象未设置为应用程序委托

看看苹果的文档,有很多方法可以做到这一点:

删除窗口的Interface Builder.xib文件中的应用程序委托绑定 将main.h中UIApplicationMain的第四个参数设置为非nil。 检查Interface Builder中的nib文件,查看是否已设置应用程序委托

参考文件

应用程序委托是您在中提供的自定义对象 应用程序启动时间,通常通过将其嵌入到应用程序的 主nib文件。此对象的主要任务是初始化 应用程序并在屏幕上显示其窗口。UIApplication对象 当发生特定的应用程序级事件时,还通知此对象 发生,例如由于以下原因需要中断应用程序时 由于用户 点击主页按钮

第四个参数标识应用程序委托的类。 应用程序代表负责管理高级应用程序 系统和自定义代码之间的交互。指定零 告诉UIKit应用程序委托对象位于 应用程序的主nib文件,这是构建应用程序的情况 使用Xcode模板