我檢索從物體看起來像這樣一個鍵:轉換NSDecimalNumber到的NSString
po obj
{
TypeID = 3;
TypeName = Asset;
}
密鑰值被檢索到這樣的:
NSString *typeId = (NSString*)[obj objectForKey:@"TypeID"];
不是TYPEID是一個NSString它是一個NSDecimalNumber。這是爲什麼?
如何將其轉換爲NSString?
我檢索從物體看起來像這樣一個鍵:轉換NSDecimalNumber到的NSString
po obj
{
TypeID = 3;
TypeName = Asset;
}
密鑰值被檢索到這樣的:
NSString *typeId = (NSString*)[obj objectForKey:@"TypeID"];
不是TYPEID是一個NSString它是一個NSDecimalNumber。這是爲什麼?
如何將其轉換爲NSString?
您需要使用stringWithFormat
功能:
NSString *typeId = [NSString stringWithFormat:@"%@", [obj objectForKey:@"TypeID"]];
或stringValue
:
NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];
這應該工作:
NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];
使用此NSDecimalNumber轉換成的NSString:
NSDecimalNumber* dec1;
NSString* str;
str = dec1.stringValue;
使用此功能的NSString轉換爲NSDecimalNumber:
NSString* string1 = @"Stack overflow 123";
NSDecimalNumber* dec;
dec = (NSDecimalNumber *)string1;
如果你想要得到的字符串值,只需使用 「說明」。它工作正常,即使返回類型爲NSDecimalNumber,或的NSString,或什麼:
NSString *typeId = [[obj objectForKey:@"TypeID"] description];
因爲這是頂級的搜索結果,我沒有看到一個NSDecimalNumber問題字符串斯威夫特,在這兒呢。這將顯示本地化的小數點分隔符和所有小數位的非零值。
let string = decimalNumber.description(withLocale: Locale.current)
你不能只投了'NSString'到'NSDecimalNumber',他們是不同類型的,如果你嘗試使用'對指針NSDecimalNumber'方法,你會崩潰。 – axiixc 2014-04-30 04:31:42