次のようなオブジェクトからキーを取得しています。
po obj
{
TypeID = 3;
TypeName = Asset;
}
キー値は次のように取得されます。
NSString *typeId = (NSString*)[obj objectForKey:@"TypeID"];
typeIdが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];
文字列値を取得したい場合は、「description」を使用してください。返されるタイプがNSDecimalNumber、NSString、またはその他の場合でも正常に機能します。
NSString *typeId = [[obj objectForKey:@"TypeID"] description];
これが上位の検索結果であり、SwiftでNSDecimalNumberからStringへの質問が表示されないため、ここにあります。これにより、ローカライズされた小数点とゼロ以外の値を持つすべての小数点以下の桁が表示されます。
let string = decimalNumber.description(withLocale: Locale.current)
これを使用して、NSDecimalNumberをNSStringに変換します。
NSDecimalNumber* dec1;
NSString* str;
str = dec1.stringValue;
これを使用して、NSStringをNSDecimalNumberに変換します。
NSString* string1 = @"Stack overflow 123";
NSDecimalNumber* dec;
dec = (NSDecimalNumber *)string1;