为什么我在iOS应用程序中收到EXC_ARITHMETIC错误?

时间:2011-10-09 16:21:26

标签: objective-c ios cocoaasyncsocket

我的应用程序崩溃并出现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应用程序进行通信。

1 个答案:

答案 0 :(得分:0)

这似乎只是iOS 5 sim的一个问题,在iOS 4.3中运行良好。