कैसे एक डेटाटाइप में परिवर्तित NSInteger
होता है NSString
?
मैंने निम्नलिखित की कोशिश की, जहां माह एक है NSInteger
:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
कैसे एक डेटाटाइप में परिवर्तित NSInteger
होता है NSString
?
मैंने निम्नलिखित की कोशिश की, जहां माह एक है NSInteger
:
NSString *inStr = [NSString stringWithFormat:@"%d", [month intValue]];
जवाबों:
NSIntegers ऑब्जेक्ट नहीं हैं, आपने उन्हें long
वर्तमान 64-बिट आर्किटेक्चर की परिभाषा से मेल खाने के लिए कास्ट किया है :
NSString *inStr = [NSString stringWithFormat: @"%ld", (long)month];
[@(integerValue) stringValue]
एक क्लीनर दृष्टिकोण है।
ओब्ज-सी रास्ता =):
NSString *inStr = [@(month) stringValue];
%zd
NSIntegers के लिए काम करता है (NSUInteger के %tu
लिए) 32-बिट और 64-बिट आर्किटेक्चर दोनों पर कोई जाति और कोई चेतावनी नहीं है। मुझे नहीं पता कि यह " अनुशंसित तरीका " क्यों नहीं है ।
NSString *string = [NSString stringWithFormat:@"%zd", month];
यदि आप रुचि रखते हैं कि यह कार्य इस प्रश्न को क्यों देखता है ।
करने का आसान तरीका:
NSInteger value = x;
NSString *string = [@(value) stringValue];
यहाँ @(value)
दिए गए NSInteger
को एक NSNumber
ऑब्जेक्ट में कनवर्ट करता है जिसके लिए आप आवश्यक फ़ंक्शन को कॉल कर सकते हैं stringValue
,।
जब समर्थन के लिए संकलन arm64
, यह एक चेतावनी उत्पन्न नहीं करेगा:
[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
आप भी आजमा सकते हैं:
NSInteger month = 1;
NSString *inStr = [NSString stringWithFormat: @"%ld", month];
Format specifies type 'int' but the argument has type 'NSInteger *'(aka 'int *')
। इसके बजाय Apple डॉक्स के साथ , मैं साथ चला गयाNSString *inStr = [NSString stringWithFormat:@"%d", (int)month];