16

次のようなオブジェクトからキーを取得しています。

po obj
{
  TypeID = 3;
  TypeName = Asset;
}

キー値は次のように取得されます。

NSString *typeId = (NSString*)[obj objectForKey:@"TypeID"];

typeIdがNSStringであるのではなく、NSDecimalNumberです。何故ですか?

NSStringに変換するにはどうすればよいですか?

4

5 に答える 5

32

stringWithFormat次の関数を使用する必要があります。

NSString *typeId = [NSString stringWithFormat:@"%@", [obj objectForKey:@"TypeID"]];

またはstringValue

NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];
于 2010-04-04T05:04:42.930 に答える
4

これは機能するはずです:

NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue];
于 2010-04-04T05:05:16.407 に答える
1

文字列値を取得したい場合は、「description」を使用してください。返されるタイプがNSDecimalNumber、NSString、またはその他の場合でも正常に機能します。

NSString *typeId = [[obj objectForKey:@"TypeID"] description];
于 2012-05-04T04:30:38.793 に答える
1

これが上位の検索結果であり、SwiftでNSDecimalNumberからStringへの質問が表示されないため、ここにあります。これにより、ローカライズされた小数点とゼロ以外の値を持つすべての小数点以下の桁が表示されます。

let string = decimalNumber.description(withLocale: Locale.current)

于 2017-01-11T00:11:08.853 に答える
-1

これを使用して、NSDecimalNumberをNSStringに変換します。

NSDecimalNumber* dec1;
NSString* str;

str = dec1.stringValue;

これを使用して、NSStringをNSDecimalNumberに変換します。

NSString* string1 = @"Stack overflow 123";
NSDecimalNumber* dec;

dec = (NSDecimalNumber *)string1;
于 2012-04-09T12:39:08.343 に答える