2011-01-27 40 views
0

我的應用程序在模擬器中運行得很好,但現在我有開發人員許可證,當我嘗試在iPod Touch上運行它時,xcode說GBD: Program received signal: "SIGABRT".當在ipod touch上運行時,不是模擬器..'程序收到信號SIGABRT'

我該怎麼做才能弄清楚問題在這裏?建築時沒有警告。

編輯:對不起,這是我第一次在設備上運行應用程序,所以請耐心等待。我只注意到Organizer窗口和調試器給我一個設備上發生了什麼的日誌。所以這就是問題所在:

[UIApplication setStatusBarHidden:withAnimation:]: unrecognized selector sent to instance 0x1160e0

而且它指的是代碼爲(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

這是有問題的代碼:

'如果(interfaceOrientation == UIInterfaceOrientationLandscapeLeft | | interfaceOrientation == UIInterfaceOrientationLandscapeRight){

self.view = clockView; 
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO]; 
    return YES; 


} 
if (interfaceOrientation == UIInterfaceOrientationPortrait) { 

    self.view = homeView; 

    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO]; 

    return YES; 
} 
if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) { 

self.view = homeView; [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];

return YES; 
} 
else { 
    return YES; 
} 

`

+0

運行在調試模式,那麼它至少應該告訴你哪一行是造成SIGABRT 。 – vmpstr 2011-01-27 11:49:37

回答

3

[UIApplication的setStatusBarHidden:withAnimation:]:無法識別的選擇發送到實例0x1160e0

的方法似乎不在設備上存在。它被添加到3.2。您的iPod正在運行哪個iOS版本?此外,第二個參數類型是錯誤的

如果它是低的,你要支持它,你應該考慮

if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) { 
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 
    } else { 
     [[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO]; 
    } 
0

當您運行在調試模式下的應用程序,你可以監控控制檯(運行 - >控制檯)。對於大多數崩潰,你會得到一些錯誤信息,將指向你正確的方向。另外,在調試視圖中,您將能夠在應用程序崩潰時(在Xcode的默認佈局中調試視圖的左上角)看到堆棧。 Xcode會用深色文本突出顯示堆棧中屬於您的代碼的方法。那些是第一批嫌疑犯。

1

在代碼的一開始就粘貼一個斷點,然後在調試模式下運行它。使用調試器逐行瀏覽代碼,並查看在SIGABRT發生之前代碼得到的距離。

但是,您是否已將iPod touch設置爲配置設備?

哦,剛剛發現了別的東西。我不確定您是否將正確的數據發送到withAnimation參數。檢查文檔:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO]; 

應該是這樣的:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
相關問題