私はNSString
に解析されたオブジェクトを持っています。クラス名をトレースすると、NCDecimalNumber
と表示されます。どうして? (私はNSString
がクラスタだと理解していますが、なぜNSDecimalNumber
がクラスタの後ろにあるのか分かりません)NSStringのNSDecimalNumberはなぜですか?
次のポストは同様の質問をしますが、誰もその理由に答えません。 Converting NSDecimalNumber to NSString
私はNSString
に解析されたオブジェクトを持っています。クラス名をトレースすると、NCDecimalNumber
と表示されます。どうして? (私はNSString
がクラスタだと理解していますが、なぜNSDecimalNumber
がクラスタの後ろにあるのか分かりません)NSStringのNSDecimalNumberはなぜですか?
次のポストは同様の質問をしますが、誰もその理由に答えません。 Converting NSDecimalNumber to NSString
デコーダのように数字がNSDecimalNumber
(および文字列はNSString
に)デコードされているようです。
Objective-C はですので、ポインタに効果的に何かを割り当てることができるので、型が一致することはあなた次第です。このため、タイプNSNumber
のオブジェクトを、NSString*
と宣言されたポインタに割り当てることができます。ご覧のように、クラスクラスタはこれとは関係ありません。
オブジェクトを変数に割り当てる前に、クラスをチェックするか、オブジェクトをid
(任意のオブジェクトを保持できる)のポインタに割り当てる必要があります。
あなたは自分のタイプに基づいてオブジェクトの上に作業する必要がある場合は
、あなたはこのような何かを行うことができます。id obj = //...
if ([obj isKindOfClass: [NSString class]]) {
}
else if ([obj isKindOfClass: [NSNumber class]]) {
}
else {
}
これを使用してみてください:
NSString *string = [[NSStrig alloc] initWithFormat:@"%@", [DecimalNumber stringValue]];
あなたを助けるために起こっている希望。
あなたが状況を再現する任意のコードを持っていますか? – Monolo
これを複製することができます。JSONを値で解析すると、取得したオブジェクトは上記の投稿リンクと似ています。その後、(objectForKeyを介して)値にアクセスしてNSStringに保存すると(変数名「value」と言うと、[value class]をトレースするとNSDecimalNumberが返されます) – Boon