我正在创建一个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模拟器工作正常,将应用程序放在手机上并运行
有什么想法吗?谢谢!
答案 0 :(得分:0)
你的代码对我来说很好, 也许问题就在这里
//Set to interactive mode
[self.viewController.motionController setInteractiveMode:TRUE];
[self.viewController.motionController recoverSML];
[self.viewController.motionController startRecording];
我认为xcode中的默认模拟器不支持加速度计,麦克风和相机。可能访问其中任何一个可能会导致冻结。我记得在模拟器上访问摄像头时崩溃了。
虽然你不会在iPad模拟器上崩溃,这很奇怪。这只是我的猜测。