2013-04-01 5 views
20

तो यह समस्या मुझे बहुत लंबे समय तक परेशान कर रही है। मेरे पास UIAlertView है जिसमें textField है, और मुझे के मान को NSNumber के रूप में चाहिए। लेकिन मैं जो कुछ भी कोशिश करता हूं वह मुझे संख्याओं के यादृच्छिक तार देता है। किसी भी मदद को बहुत, बहुत सराहा जाएगा।एनएसएसटींग एनएसएनंबर

int i = [[alertView textFieldAtIndex:0].text intValue]; 
NSNumber *number = [NSNumber numberWithInt:[[alertView textFieldAtIndex:0].text integerValue]];  


int number = [[dict objectForKey:@"integer"] intValue]; 

NSLog(@"text = %@", [alertView textFieldAtIndex:0].text); 


NSString *alertText = [alertView textFieldAtIndex:0].text; 

NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; 
[f setNumberStyle:NSNumberFormatterNoStyle]; 
NSNumber * myNumber = [f numberFromString:[alertView textFieldAtIndex:0].text]; 


NSNumber *number = @([alertText intValue]); 

NSString *string = @"54"; 
NSNumber *number = @([string intValue]); 

NSLog(@"here we are: %i", number); 
+0

संबंधित: http://stackoverflow.com/questions/1448804/how-to-convert-an-nsstring-into-an-nsnumber –

+0

मैंने यह पूछने से पहले देखा। लेकिन जब मैंने उस कोड को चलाया, तो मुझे मिला: '15 9 348080' – Andrew

+0

कृपया अपना कोड पोस्ट करें, जहां आपको टेक्स्टफाइल –

उत्तर

48

एक बार इस एक देखते हैं,

NSString *string = @"123"; 
    NSNumber *aNum = [NSNumber numberWithInteger: [string integerValue]]; 
    NSLog(@"%@",aNum);//NSString to NSNumber 
    NSInteger number=[string intValue]; 
    NSLog(@"%i",number);//NSString to NSInteger 
+0

मुझे लगता है कि यह 'नंबर विथइंटर' और 'पूर्णांक वैल्यू' भाग था जिसने इसे किसी भी कारण से काम किया। वैसे भी, बहुत बहुत धन्यवाद। – Andrew

3

यहां एक पूर्णांक के साथ नमूना है और NSNumber अक्षर का उपयोग कर रहा है। यदि आपकी स्ट्रिंग में फ्लोट है तो आप floatValue विधि का भी उपयोग कर सकते हैं।

NSString *string = @"54"; 
NSNumber *number = @([string intValue]); 
+0

के लिए एक त्रुटि देनी चाहिए मैंने कोशिश की, और मिला: '15 9 348080' जब मैंने परिणाम – Andrew

+0

लॉग किया, तो दूसरी पंक्ति नहीं होनी चाहिए, *** NSNumber * संख्या = [NSNumber संख्या WithInt: [string intValue]]; * **? – EmptyStack

+0

यह NSNumber अक्षर का उपयोग करता है जो एक ही चीज़ के बराबर है। –

3

@Aaron Wojnowski,

उपयोग NSNumberFormatter। यदि आप चाहते हैं, तो आप समूह विभाजक भी सेट कर सकते हैं।

NSNumberFormatter *formatString = [[NSNumberFormatter alloc] init]; 
stringValue = textfield.text; 
    NSNumber *reqNumber = [formatString numberFromString:stringValue]; 
7
NSString *string = @"54"; 
NSNumber *number = @([string intValue]); 
NSLog(@"here we are: %i", number); 

इसके बजाय निम्न प्रयोग करके देखें:

NSLog(@"here we are: %@", number); 

आप NSNumber (वस्तु) को परिवर्तित कर रहे हैं के बाद से। आपको अपने NSLog कथन में ऑब्जेक्ट विनिर्देश% @ का उपयोग करना चाहिए।