我尝试将NSPopUpButton中所选项目的字符串值转换为它的int值(弹出窗口中的项目是各种数字):
txtUPs = [txtUPs stringByAppendingString:btnUPs.titleOfSelectedItem];
numUPs = (int) txtUPs;
NSLog(@"%i" ,numUPs);
而不是获得整数6(当我从弹出窗口中选择6时),我得到一个像26376这样的大数字。我做错了什么?
谢谢, 基思
答案 0 :(得分:1)
要将字符串转换为整数值,请使用integerValue字符串方法。例如:
NSInteger selectedNumber = [btnUPs.titleOfSelectedValue integerValue];
答案 1 :(得分:0)
您应该使用number formatter。它将以本地化的方式处理转换。 (字符串呈现给用户,因此应该是可本地化的。)
NSString *stringValue = [txtUPs stringByAppendingString:btnUPs.titleOfSelectedItem];
NSNumberFormatter *formatter =[[NSNumberFormatter alloc] init];
// Configure the formatter, if you need to
formatter.numberStyle = NSNumberFormatterDecimalStyle
…
// Convert it
NSNumber *numberValue = [formatter numberFromString:stringValue];
int value = [numberValue intValue];
顺便说一句:从显示的值中获取内部程序值的方法可能会破坏:想想像">这样的项目。 1000"或数字格式化程序无法转换的值表示,即即" 10K5"