IOS应用程序在didFinishWithLaunchingWithOptions之后冻结

时间:2012-06-29 01:27:20

标签: ios xcode

我正在创建一个IOS应用程序,应用程序在从didFinishWIthLaunchingWithOptions返回后冻结。

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{



self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.


self.viewController = [[FooPlatformViewController alloc] init];

self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];

 //Set to interactive mode
[self.viewController.motionController setInteractiveMode:TRUE];
[self.viewController.motionController recoverSML];
[self.viewController.motionController startRecording];

return YES;

}

检查那里的所有变量会让我相信一切都很顺利。我没有在输出中看到任何错误或消息。但是,在函数返回后,应用程序会冻结。

我注意到这个冻结的几个奇怪的事情。首先,当我在冻结期间暂停执行时,应用程序有一个看起来像的调用堆栈:

mach_msg_trap

mach_msg

我的代码都不在那里,一直回到我的单行main。

接下来,此冻结仅在运行iphone的模拟器时发生。 ipad模拟器工作正常,将应用程序放在手机上并运行

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你的代码对我来说很好, 也许问题就在这里

//Set to interactive mode
[self.viewController.motionController setInteractiveMode:TRUE];
[self.viewController.motionController recoverSML];
[self.viewController.motionController startRecording];

我认为xcode中的默认模拟器不支持加速度计,麦克风和相机。可能访问其中任何一个可能会导致冻结。我记得在模拟器上访问摄像头时崩溃了。

虽然你不会在iPad模拟器上崩溃,这很奇怪。这只是我的猜测。