2010-04-04 16 views
16

मैं एक उद्देश्य यह है कि इस तरह दिखता है से एक चाबी को पुन: प्राप्त कर रहा हूँ करने के लिए NSDecimalNumber परिवर्तित:NSString

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

कुंजी मान इस तरह लिया गया जा रहा है:

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

बजाय typeId एक NSString किया जा रहा है , यह एक NSDecimalNumber है। ऐसा क्यों है?

मैं इसे एनएसएसटींग में कैसे परिवर्तित करूं?

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

या stringValue:

उत्तर

29

आप stringWithFormat समारोह उपयोग करने की आवश्यकता

NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue]; 
3

यह काम करना चाहिए:

NSString *typeId = [[obj objectForKey:@"TypeID"] stringValue]; 
-1

उपयोग इस NSString करने के लिए NSDecimalNumber कन्वर्ट करने के लिए:

NSDecimalNumber* dec1; 
NSString* str; 

str = dec1.stringValue; 

इस का प्रयोग करें NSDecimalNumber को NSString परिवर्तित करने के लिए:

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

dec = (NSDecimalNumber *)string1; 
+2

तुम बस एक 'NSDecimalNumber' के लिए एक' NSString' डाली नहीं कर सकते, वे कर रहे हैं विभिन्न प्रकार के और यदि आप 'कि सूचक पर उपयोग करने के लिए NSDecimalNumber' तरीकों की कोशिश आप दुर्घटना होगा। – axiixc

1

आप स्ट्रिंग मान प्राप्त करना चाहते हैं, बस "विवरण" का उपयोग करते हैं। यह ठीक काम करता है, भले ही लौट आए प्रकार NSDecimalNumber, या NSString, या जो कुछ भी है:

NSString *typeId = [[obj objectForKey:@"TypeID"] description]; 
0

के बाद से इस शीर्ष खोज परिणाम है और मैं स्विफ्ट में स्ट्रिंग के लिए NSDecimalNumber के लिए एक सवाल नहीं देखते हैं, ये रहा। यह स्थानीयकृत दशमलव विभाजक और गैर-शून्य मान वाले सभी दशमलव स्थानों को दिखाएगा।

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