कैसे एक डेटाटाइप में परिवर्तित 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];
%zdNSIntegers के लिए काम करता है (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];