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程序進行通信。
您是否嘗試過在沒有任何斷點的情況下在調試器中運行?當發生異常時,您可以查看堆棧跟蹤以查看錯誤發生的具體時間。 – nall
這是我得到的調試器輸出... 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
我認爲這可能是iOS 5 sdk的問題嗎?它似乎在iOS 4.3模擬器中順利運行 – tsdexter