Objective c 目标C-数字与字符串和抓取长度不一致
我试图从文本框条目中获取一个数字,将其转换为字符串并获取其长度。(即:对数字执行LEN(someInteger) 我已经能够让它工作,但是当数字为0或null时,会出现一些不一致 比如,Objective c 目标C-数字与字符串和抓取长度不一致,objective-c,string,numbers,Objective C,String,Numbers,我试图从文本框条目中获取一个数字,将其转换为字符串并获取其长度。(即:对数字执行LEN(someInteger) 我已经能够让它工作,但是当数字为0或null时,会出现一些不一致 比如, -(IBAction)update { // inputField is the number pad textbox double myInput = [inputField.text doubleValue]; // NSNumber *c = [NSNumber numberW
-(IBAction)update
{
// inputField is the number pad textbox
double myInput = [inputField.text doubleValue];
//
NSNumber *c = [NSNumber numberWithDouble:myInput];
NSString *myOutput = [c stringValue];
NSLog(@"Starting number (number) = %@", c);
NSLog(@"myOutput (string) = %@", myOutput);
NSLog(@"myOutput (length) = %d", ([myOutput length]) );
}
数字到字符串的转换工作正常。我的问题是长度,特别是当没有数字(或空)条目时
我在XIB上有一个数字键盘文本框条目,它的“文本”为0(占位符只显示“在此处输入数字”)
当您第一次开始在文本框中输入时,“文本”将消失,您将从一个空白文本框开始
问题1——当您第一次输入文本框时,文本框中没有任何内容,但我的NSLog显示输出长度为1个字符
这会导致一个问题,因为文本框中没有任何内容,但[myOutput length]报告1个字符的长度
问题2——当您开始输入数字时,一切都很顺利——但当您开始删除数字,直到完全清除文本框时,它报告的长度为1个字符
如果文本框中没有任何内容,它如何读取1个字符长?我想它一定又是“文本”(来自身份检查器)
总结
谢谢。如果没有文本,
myInput
将等于0.0myOutput
将等于长度为1的@“0”
为什么不直接使用[inputField.text length]
你可以这样做:
NSNumber *number = nil;
if ([inputField.text length] > 0) {
number = [NSNumber numberWithDouble:[inputField.text doubleValue]];
}
这样你就有了你的号码,如果它存在,否则
number
将是nil
如果没有文本,myInput
将等于0.0myOutput
将等于长度为1的@“0”
为什么不直接使用[inputField.text length]
你可以这样做:
NSNumber *number = nil;
if ([inputField.text length] > 0) {
number = [NSNumber numberWithDouble:[inputField.text doubleValue]];
}
这样,如果您的号码存在,您就有了它,否则number
将是nil