我目前正在使用Xcode的iOS應用程序,並且已經提出了用於計算有效位數的代碼。它是用C++編寫的,但我做了一些改變以使其起作用。每當我輸入一個零值,它崩潰,其他任何工作都很好。iOS調試器在文本框中輸入0.0時崩潰
我的代碼如下:
- (IBAction)sigFigCount:(UITextField *)thetextfield
{
length = 0;
if (thetextfield == _textfield1)
{
if ([thetextfield.text length] > 0)//If TextField Has More Than 0 digits...
{
text1 = std::string([_textfield1.text UTF8String]);
while (text1.at(0) == '0' || text1.at(0) == '.')//Trim Leading Zeros...
{
text1 = text1.substr(1);
}
length = text1.length();
decimal = text1.find('.');
if (decimal >= 0 && decimal < text1.length())//Dont count decimal as sig fig...
{
length -= 1;
}
if ([[_textfield1 text] doubleValue] == 0.0)
{
NSLog(@"HERE");
self.display3.text = @"1";
}
NSString *siggy = [NSString stringWithFormat:@"%i", length];
self.display3.text = siggy;
}
if ([thetextfield.text length] == 0)
{
length = 0;
NSString *ifzero = [NSString stringWithFormat:@"%i", length];
self.display3.text = ifzero;
}
if ([[thetextfield text] doubleValue] == 0.0)
{
newLength = 1;
NSString *zeroVal = [NSString stringWithFormat:@"%i", newLength];
self.display3.text = zeroVal;
}
NSString *norm = [NSString stringWithFormat:@"%i", length];
self.display3.text = norm;
}
}
請幫幫忙,我相信它有事情做與數字在內存中表現的方式......但NSLog的工作時,我把它放在一個while語句...任何輸入讚賞。
謝謝
什麼崩潰:
最後,如果也可以很容易地從轉換?崩潰日誌在哪裏? – 0x8badf00d 2012-04-20 03:14:57
真的沒有崩潰日誌,它的輸出是「terminate called throwing an exception」並且iOS Simulator退出。 – JoeyLaBarck 2012-04-20 03:33:33