2012-06-29 117 views
-1

我正在做一個IOS應用程序,並從didFinishWIthLaunchingWithOptions返回後,應用程序凍結。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

主要

沒有我的代碼在那裏,一直回到我的單線主。

接下來,此凍結只發生在運行iphone的模擬器。 iPad的模擬器工作正常,因爲把應用程序放在手機上並運行該應用程序

任何想法?謝謝!

+0

發佈**'didFinishWIthLaunchingWithOptions' **中的代碼。您很可能試圖訪問已發佈的內容。你在使用ARC嗎? – WrightsCS

+0

ARC打開。 – Tyler

+0

您是否改變過'application:didFinishLaunchingWithOptions'?如果是這樣,你可以發佈代碼嗎?謝謝。 – pasawaya

回答

0

您的代碼看起來好像沒什麼問題, 也許問題就在這裏的某個地方

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

我認爲,在Xcode犯規支持加速度計,麥克風和攝像頭默認的模擬器。可能訪問任何這些可能會導致凍結。我記得在模擬器上訪問攝像機時崩潰了。

雖然它不奇怪,你不會在iPad模擬器上崩潰。這只是我的猜測。