-1

我正在制作一个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

ETC

ETC

主要的

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

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

有任何想法吗?谢谢!

4

1 回答 1

0

您的代码对我来说看起来不错,也许问题出在此处

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

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

虽然很奇怪你没有在 iPad 模拟器上崩溃。这只是我的一个疯狂的猜测。

于 2012-06-29T05:43:22.380 回答