sta*_*rob 1 iphone objective-c ios
我创建了一个新的基于窗口的项目,无法弄清楚为什么它没有做任何事情.最后我在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]);
}
Run Code Online (Sandbox Code Playgroud)
这是我写的全部内容,当我在模拟器或设备上运行时,没有记录任何内容.有什么想法吗?
小智 7
那么,你在谈论应用代表.显而易见的原因 - 您的对象未设置为应用程序委托.
查看Apple文档,有很多方法可以实现它:
检查Interface Builder中的nib文件,看看是否已设置App Delegate.
参考文档 核心应用程序设计
应用程序委托是您在应用程序启动时提供的自定义对象,通常通过将其嵌入应用程序的主nib文件中.该对象的主要工作是初始化应用程序并在屏幕上显示其窗口.UIApplication对象还会在特定应用程序级事件发生时通知此对象,例如当应用程序需要中断(由于传入消息)或移动到后台时(因为用户点击了Home按钮).
第四个参数标识应用程序委托的类.应用程序委托负责管理系统与自定义代码之间的高级交互.指定nil告诉UIKit应用程序委托对象位于应用程序的主nib文件中(使用Xcode模板构建的应用程序就是这种情况).
| 归档时间: |
|
| 查看次数: |
2037 次 |
| 最近记录: |