2009-07-09 10 views
60

मैं एक int से स्ट्रिंग में कनवर्ट करने की कोशिश कर रहा हूं लेकिन मुझे परेशानी हो रही है। मैंने डीबगर के माध्यम से निष्पादन का पालन किया और स्ट्रिंग 'माईटी' को 'योग' का मान मिलता है लेकिन 'अगर' कथन सही ढंग से काम नहीं करता है तो 'योग' 10,11,12 है। क्या मुझे संख्या को स्टोर करने के लिए एक प्राचीन int प्रकार का उपयोग नहीं करना चाहिए? साथ ही, मैंने कोशिश की दोनों विधियों (टिप्पणी-आउट कोड देखें) 'if' कथन के सही पथ का पालन करने में विफल रहे। धन्यवाद!उद्देश्य सी में स्ट्रिंग से int में कनवर्ट करने के लिए कैसे करें: उदाहरण कोड

int x = [my1 intValue]; 
    int y = [my2 intValue]; 
    int sum = x+y; 
    //myT = [NSString stringWithFormat:@"%d", sum]; 
    myT = [[NSNumber numberWithInt:sum] stringValue]; 

    if([email protected]"10" || [email protected]"11" || [email protected]"12") 
     action = @"numGreaterThanNine"; 
+6

वहाँ एक कारण है कि आप एक स्ट्रिंग में पूर्णांक डाल रहे है? अपने परीक्षण को 'if (sum> = 10 && sum <= 12) ' – Alex

+1

के रूप में लिखना इतना आसान होगा यदि उत्तर आपको उलझन में डालते हैं, तो इस संबंधित प्रश्न को देखें: http://stackoverflow.com/questions/3414644/कैसे-टू-कन्वर्ट-इंटीजर-टू-स्ट्रिंग-इन-ऑब्जेक्ट-सी-बंद – Florin

उत्तर

30

टिप्पणी की गई संस्करण यह करने का एक और सही तरीका है।

यदि आप तारों पर == ऑपरेटर का उपयोग करते हैं, तो आप तारों के मूल्यों के बजाय तारों के पते (जहां उन्हें स्मृति में आवंटित किया जाता है) की तुलना कर रहे हैं। यह (यह इंगित करता है कि आप ठीक उसी स्ट्रिंग वस्तु है) बहुत सामयिक उपयोगी है, लेकिन समय के 99% आप मान है, जो आपको इतना पसंद करते हैं की तुलना करना चाहते:

if([myT isEqualToString:@"10"] || [myT isEqualToString:@"11"] || [myT isEqualToString:@"12"]) 
+0

थोड़ा टाइपो, एक गायब: दूसरी तुलना में। – marcc

12

== अपने if में वस्तुओं की तुलना करने के लिए नहीं किया जाना चाहिए। NSString के लिए उनकी तुलना करने के लिए isEqualToString: का उपयोग करें।

156

तुम सिर्फ करने के लिए एक पूर्णांक की जरूरत है एक स्ट्रिंग सुझाव के रूप में, मैंने पाया सबसे आसान तरीका है के रूप में नीचे करने के लिए है:

[NSString stringWithFormat:@"%d",numberYouAreTryingToConvert] 
6
int val1 = [textBox1.text integerValue]; 
int val2 = [textBox2.text integerValue]; 

int resultValue = val1 * val2; 

textBox3.text = [NSString stringWithFormat: @"%d", resultValue]; 
136

आप शाब्दिक उपयोग कर सकते हैं, यह अधिक कॉम्पैक्ट है।

NSString* myString = [@(17) stringValue]; 

(एक NSNumber के रूप में बक्से और उसके stringValue विधि का उपयोग करता)

+3

@ रविंद्रनाथ अकिला - 'स्ट्रिंगविथफॉर्मैट' अधिक लचीला/शक्तिशाली है और सामान्य रूप से इसका उपयोग किया जाना चाहिए। यह सिर्फ एक शॉर्टकट है यदि यह एक साधारण रूपांतरण है जिसके बाद आप हैं। – Robert

+0

धन्यवाद। दरअसल, मैं एक गैर-वर्बोज दृष्टिकोण की तलाश में था :-) –

3

सीधे शब्दों में NSString उपयोग करने के लिए int कन्वर्ट:

int x=10; 

    NSString *strX=[NSString stringWithFormat:@"%d",x]; 
संबंधित मुद्दे