我正在从一个看起来像这样的对象中检索一个键:
po obj
{
TypeID = 3;
TypeName = Asset;
}
正在检索键值:
NSString *typeId = (NSString*)[obj objectForKey:@"TypeID"];
它不是typeId是NSString,而是NSDecimalNumber。那是为什么?
如何将其转换为NSString?
答案 0 :(得分:32)
您需要使用stringWithFormat
功能:
NSString *typeId = [NSString stringWithFormat:@"%@", [obj objectForKey:@"TypeID"]];
或stringValue
:
NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];
答案 1 :(得分:3)
这应该有效:
NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];
答案 2 :(得分:1)
如果您想获取字符串值,只需使用“description”即可。即使返回的类型是NSDecimalNumber,NSString,或其他任何东西,它也可以正常工作:
NSString *typeId = [[obj objectForKey:@"TypeID"] description];
答案 3 :(得分:1)
由于这是最热门的搜索结果,我在Swift中看不到NSDecimalNumber到String的问题,这里是。这将显示本地化的小数点分隔符和具有非零值的所有小数位。
let string = decimalNumber.description(withLocale: Locale.current)
答案 4 :(得分:-1)
使用它将NSDecimalNumber转换为NSString:
NSDecimalNumber* dec1;
NSString* str;
str = dec1.stringValue;
使用它将NSString转换为NSDecimalNumber:
NSString* string1 = @"Stack overflow 123";
NSDecimalNumber* dec;
dec = (NSDecimalNumber *)string1;