アプリがクラッシュし、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];
行にブレークポイントを追加すると、アプリのボタンをクリックすると機能し、ブレークポイントで停止し、[プログラムの実行を続行] をクリックすると、エラーも発生せずに機能します。
注: Cocoa アプリとの通信に CocoaAsyncSocket を使用しています。