2011-10-09 89 views
2

我對iOS開發和Objective C很新,所以請和我一起裸照。我的應用程序崩潰,並得到一個EXC_ARITHMETIC錯誤,我不知道爲什麼。這裏就是錯誤的發生:爲什麼我在iOS應用程序中收到EXC_ARITHMETIC錯誤?

int main(int argc, char *argv[]) { 

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    int retVal = UIApplicationMain(argc, argv, nil, nil); //ERROR IS HERE 
    [pool release]; 
    return retVal; 
} 

,當我在應用程序中單擊一個按鈕的錯誤發生,它迷上了我的ViewController.m文件是這樣的:

- (IBAction)btnPressed:(UIButton *)sender { 
    [self btnPressed]; 
} 

調用該代碼從相同的文件:

- (void)btnPressed { 
    NSString *strInfo = [[NSString alloc] initWithString:@"Test Info. \r\n"]; 
    NSData *dataInfo = [strInfo dataUsingEncoding:NSUTF8StringEncoding]; 
    [strInfo release]; 
    [socket writeData:dataInfo withTimeout:-1 tag:1]; 
} 

的btnPressed也被稱爲當應用程序加載,如果我添加斷點到[self btnPressed];線,當我點擊了屁股也不會產生錯誤...以及隨後在應用程序中運行,停在斷點處,當我點擊'繼續執行程序'時,它也可以正常工作。

我迷路了。任何幫助,將不勝感激。如果我錯過了您需要的重要數據,請讓我知道。

感謝, 托馬斯

注:我使用CocoaAsyncSocket用Cocoa程序進行通信。

+2

您是否嘗試過在沒有任何斷點的情況下在調試器中運行?當發生異常時,您可以查看堆棧跟蹤以查看錯誤發生的具體時間。 – nall

+0

這是我得到的調試器輸出... GNU gdb 6.3.50-20050815(Apple version gdb-1708)(Mon Aug 15 16:03:10 UTC 2011) Copyright 2004 Free Software Foundation,Inc. GDB是免費的軟件,GNU通用公共許可證涵蓋的軟件,歡迎您在特定條件下對其進行更改和/或分發其副本。 輸入「show copying」查看條件。 GDB絕對沒有保修。請輸入「顯示保修」以瞭解詳情。 此GDB配置爲「x86_64-apple-darwin」.sharedlibrary apply-load-rules全部 附加到進程7426. 當前語言:auto;目前objective-c (gdb) – tsdexter

+0

我認爲這可能是iOS 5 sdk的問題嗎?它似乎在iOS 4.3模擬器中順利運行 – tsdexter

回答

0

這似乎只是iOS 5 sim的問題,在iOS 4.3中運行良好。

相關問題