কীভাবে এনএসএনम्बरকে এনএসএস স্ট্রিংয়ে রূপান্তর করবেন


132

সুতরাং আমার এস এবং এস NSArrayসহ একটি "মাইআর্রে" আছে । আমার এগুলিতে অন্যদের দরকার তাই আমি এভাবে চলে যাই:NSNumberNSStringUIView

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
details.subjectText = [[myArray objectAtIndex:indexPath.row] objectForKey:@"subject"];

সাবজেক্টটি কাজ করে। তবে কীভাবে আমি NSNumberএর থেকে বের হব ? (আমি আসলে স্ট্রিং হিসাবে তাদের প্রয়োজন ...) আমি একটি রূপান্তর হবে NSStringএকটি আউট NSNumberভালো: NSString *blah = [NSNumber intValue]। তবে আমি কীভাবে উপরের কোডটিতে এটি সেট আপ করতে জানি না ...


আপনার অ্যারের আসলে অভিধান রয়েছে বলে, ব্যবহার দ্বারা বিচার বলে মনে হয় objectForKey। সুতরাং রূপান্তর করার চেষ্টা করার আগে আপনাকে সেই থেকে উপযুক্ত মানগুলি বের করতে হবে। নোট করুন যে এনএসএনম্বার সহ বেশিরভাগ কোকো অবজেক্ট প্রকারগুলি descriptionপদ্ধতিতে (বা %@বিন্যাসের স্ট্রিং ব্যবহার করে ) স্ট্রিংয়ে রূপান্তরিত হতে পারে ।
ওয়াকিটালকি

বাহ .. ধন্যবাদ ওয়াইকিস্টাল্কি! আপনি কি আমাকে একটি ডকুমেন্টেশনের দিকে নির্দেশ করতে পারেন বা এটি বোঝার জন্য একটি উদাহরণ কোড দিতে পারেন? =)
dav3

উত্তর:


380

চেষ্টা করুন:

NSString *myString = [NSNumber stringValue];

3
তবে আপনার অ্যারের অভ্যন্তরে থাকা এনএসএনবারটি নেওয়া উচিত এবং তারপরে স্ট্রিংভ্যালু পদ্ধতিটি কল করা উচিত, এনএসএসস্ট্রিং * মাইস্ট্রিং = [[আমারআরে অবজেক্টআটিআইডেক্স: i] স্ট্রিংভ্যালু] এর মতো কিছু; তবে আপনাকে অবশ্যই নিশ্চিত হতে হবে যে সেই সূচকে আপনার কোনও এনএসবার রয়েছে
জোনলু

আমি বিবরণটিকেই পছন্দ করি সাথে সাথে: লোকাল: [এনএসলোকলে বর্তমান লোকাল] কারণ এটি ইনস এবং ফ্লোট উভয়ের জন্যই কাজ করে।
just.do.it

দশমিক মানগুলি হুবহু সঠিক মানগুলি নির্দিষ্ট সংখ্যার জন্য ব্যবহার করার সময় @ জনলুও। উদাহরণস্বরূপ: এনএসএনবার * নাম = [এনএস নাম্বার সংখ্যাবিহীন ডাবল: 48.3]; NSString * strNumber = num.stringValue; 48.299999 হিসাবে ফলাফল দেয়; এটির পরিমাণ যদি গুরুত্বপূর্ণ হয় এবং এর পরিমাণটি সত্যিকারের বিশ্বে ডিল করতে হয় এবং বৃহত সংখ্যার সাথে গুণিত হয় !! কোন চিন্তা?
বিশ

হাই @ વિશ, আমি এই সমাধানটি চেষ্টা করে দেখিনি তাই নিশ্চিত যে এটি কাজ করে কিনা, এটির সাথে ফর্ম্যাট করার চেষ্টা করুন %f মতো করে : [NSString stringWithFormat:@"%f", yourDouble];
জোনলু

"নির্বাচক 'স্ট্রিংভ্যালু' এর জন্য কোনও জ্ঞাত শ্রেণি পদ্ধতি নয়" "<স্ট্রিংভ্যালু কোনও শ্রেণির ফাংশন নয় তাই আপনি এটিকে সরাসরি এনএসএনবারে কল করতে পারবেন না। রালগ্রাভেজের উত্তর এটি সঠিকভাবে করেছে।
ব্যবহারকারী 1021430

13

আপনি এটি দিয়ে এটি করতে পারেন:

NSNumber *myNumber = @15;
NSString *myNumberInString = [myNumber stringValue];

7
//An example of implementation :
// we set the score of one player to a value
[Game getCurrent].scorePlayer1 = [NSNumber numberWithInteger:1];
// We copy the value in a NSNumber
NSNumber *aNumber = [Game getCurrent].scorePlayer1;
// Conversion of the NSNumber aNumber to a String with stringValue
NSString *StringScorePlayer1 = [aNumber stringValue];

5

বা চেষ্টা করুন NSString *string = [NSString stringWithFormat:@"%d", [NSNumber intValue], nil];


8
এটি দুটি রূপান্তর করে। একটি এনএসএনম্বারকে ইনটাল্যুতে রূপান্তরিত করবে এবং ফলস্বরূপ ইন্টারভিউকে একটি এনএসএসস্ট্রিংয়ে জোর করে। এটি ব্যবহার কারওর কাছে ছোট হতে পারে তবে এটি মুছে ফেলা ছোট গণনাচক্রকে সংরক্ষণ করার দুর্দান্ত উপায় ... যা যোগ করতে পারে।
জান্ন

এটি ধরে নেওয়া হয় যে সঞ্চিত নম্বরগুলি ইনট হয় ts আপনি যদি সঞ্চিত সংখ্যার প্রকারটি জানেন না?
জেমস ওয়েবস্টার

3

মজার বিষয় হ'ল এনএসএনম্বার স্ট্রিংয়ের অংশ হয়ে গেলে স্বয়ংক্রিয়ভাবে স্ট্রিংয়ে রূপান্তরিত হয়। আমি এটি নথিভুক্ত মনে করি না। এগুলি চেষ্টা করুন:

NSLog(@"My integer NSNumber:%@",[NSNumber numberWithInt:184]);
NSLog(@"My float NSNumber:%@",[NSNumber numberWithFloat:12.23f]);
NSLog(@"My bool(YES) NSNumber:%@",[NSNumber numberWithBool:YES]);
NSLog(@"My bool(NO) NSNumber:%@",[NSNumber numberWithBool:NO]);

NSString *myStringWithNumbers = [NSString stringWithFormat:@"Int:%@, Float:%@ Bool:%@",[NSNumber numberWithInt:132],[NSNumber numberWithFloat:-4.823f],[NSNumber numberWithBool:YES]];
NSLog(@"%@",myStringWithNumbers);

এটি মুদ্রণ করবে:

My integer NSNumber:184
My float NSNumber:12.23
My bool(YES) NSNumber:1
My bool(NO) NSNumber:0
Int:132, Float:-4.823 Bool:1

ম্যাক এবং আইওএস উভয় ক্ষেত্রেই কাজ করে

এই এক কাজ করে না:

NSString *myNSNumber2 = [NSNumber numberWithFloat:-34512.23f];

2
এটি নথিভুক্ত করা হয়েছে: %@ফর্ম্যাট স্পেসিফায়ার -descriptionসংশ্লিষ্ট রিসিভার বস্তুকে বার্তা প্রেরণ করবে । আপনি লেখা একই আত্মা আপনার শেষ লাইন কাজ করতে পারে: NSString *myNSNumber2 = [[NSNumber numberWithFloat:-34512.23f] description];। আমি যতদূর বলতে পারি, NSNumberএর পদ্ধতি descriptionএবং stringValueপদ্ধতিগুলি একই কাজ করে।
জিন-ডেনিস মিউস

2

সুইফটে আপনি এটি করতে পারেন

let number : NSNumber = 95
let str : String = number.stringValue

2

সুইফট ৩.০ এ

let number:NSNumber = 25
let strValue = String(describing: number as NSNumber)
print("As String => \(strValue)")

স্ট্রিংয়ে আমরা সংখ্যাটির মান পেতে পারি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.