বুলিয়ান জন্য উদ্দেশ্য-সি বিন্যাস স্ট্রিং?


119

বুলিয়ান মানগুলির জন্য কোন ফর্ম্যাটর ব্যবহার করা হয়?

সম্পাদনা করুন:

উদাহরণ:, NSLog(@" ??", BOOL_VAL);কী ???

উত্তর:


173

এটি করার একটি উপায় হ'ল স্ট্রিংগুলিতে রূপান্তর করা (যেহেতু কেবলমাত্র দুটি সম্ভাবনা রয়েছে তাই এটি শক্ত নয়):

NSLog(@" %s", BOOL_VAL ? "true" : "false");

আমি মনে করি না যে বুলিয়ান মানগুলির জন্য একটি ফর্ম্যাট নির্দিষ্টকরণকারক রয়েছে।


2
আউটপুট স্ট্রিংগুলি হওয়া উচিত নয়: "হ্যাঁ" এবং "না": পি
বেন এস

131
বা "কেক" এবং "কেক নেই"। যাই হোক না কেন আপনার মামলা।
মাইকেল ম্যাইইয়ার্স

2
আমি কেক পছন্দ করি এবং কেক নেই! আমি আমার সমস্ত x? @ "YES": @ "NO" কোডটি x এর সাথে প্রতিস্থাপন করতে যাচ্ছি? @ "কেক": @ "কোনও পিষ্টক" তাত্ক্ষণিকভাবে: ডি - ভাল, অন্তত যাইহোক আমার অবজেক্টের বর্ণনার জন্য;)
জেসন কোকো

8
অথবা TheCakeIsALie এবং TheCakeIsNotALie।
ওয়ারেন পি

3
% hhd হল বুলিয়ান মান 0 বা 1 হিসাবে পূর্ণসংখ্যার পতাকা হিসাবে প্রদর্শন করার উপযুক্ত উপায়। 0 টি মিথ্যা 1 সত্যের জন্য।
ওজকান

69

আমি সুপারিশ করতাম

NSLog(@"%@", boolValue ? @"YES" : @"NO");

কারণ, um, BOOLগুলি বলা হয় YESবা NOঅবজেক্টিভ-সি তে।


2
এটি ম্যাক্রো বা কোনও ক্রিয়াকলাপের জন্য একটি স্পষ্ট ইউটিলিটি স্পট বলে মনে হচ্ছে (কেবলমাত্র অ্যাপ্লিকেশন জুড়ে স্ট্রিং লিটারেলের প্রচার এড়াতে)।
ওয়ারেন পি

কেবলমাত্র আপনার এ জাতীয় স্ট্রিংগুলির "প্রচার" এড়াতে হবে না - যেমন ওবিজেসি কোয়েলেসেস্ক অপরিবর্তনীয় স্ট্রিংগুলির একই মূল্যবান উদাহরণ (এবং অন্যান্য অবজেক্টস) - যেমন কেবল একটি অনুলিপি স্মৃতিতে থাকে। ম্যাক্রো ঠিক আছে, ফাংশন ঠিক আছে, এবং অনুলিপি-পেস্টও ঠিক আছে।
মোটি শ্নের


23

অবজেক্টিভ-সি তে, BOOLটাইপটি কেবল একটি স্বাক্ষরিত চর। থেকে <objc/objc.h>:

typedef signed char BOOL;
#define YES         (BOOL)1
#define NO          (BOOL)0

সুতরাং আপনি সেগুলি %dফর্ম্যাটর ব্যবহার করে মুদ্রণ করতে পারেন তবে এটি কেবল একটি 1বা একটি মুদ্রণ করবে 0, না YESবা NO

অথবা আপনি কেবল একটি স্ট্রিং ব্যবহার করতে পারেন, যেমন অন্যান্য উত্তরে পরামর্শ দেওয়া হয়েছে।


1
% C কী ASCII অক্ষর 0 বা 1 মুদ্রণ করার চেষ্টা করবে না যা উভয়ই নিয়ন্ত্রণের অক্ষর?
জেরেমিপি

21

আপনার .hফাইলটিতে এই ইনলাইন ফাংশনটি যুক্ত করুন:

static inline NSString* NSStringFromBOOL(BOOL aBool) {
    return aBool? @"YES" : @"NO";
}

এখন আপনি যেতে প্রস্তুত ...

NSLog(@"%@", NSStringFromBOOL(BOOL_VAL));

5

এনএসএলগ এবং [এনএসএস স্ট্রিং উইথফর্ম্যাট] এর সাথে ব্যবহারের জন্য ফর্ম্যাট স্ট্রিংগুলি এখানে নথিভুক্ত করা হয়েছে:

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html

বোল / বুল / বুলিয়ান এমনকি উল্লেখ করা হয় না ...


এটি অ্যাপল ডেভ সাইটটিতে খুব ভালভাবে লুকানো আছে।
এচিলন

1

কেবল নীচের ফাংশনটি যুক্ত করুন এবং এটির BOOLমান এবং পদ্ধতিটি ফিরে আসবেNSString

- (NSString *)boolValueToString:(BOOL)theBool {
    if (theBool == 0)
        return @"NO"; // can change to No, NOOOOO, etc
    else
        return @"YES"; // can change to YEAH, Yes, YESSSSS etc
}

1

আমি বিশ্বাস করি এটি করার সবচেয়ে সহজ উপায় হ'ল:

NSLog(@" %@", @(BOOL_VAL));

@ (অভিব্যক্তি)

গতিশীলভাবে বাক্সযুক্ত ভাবটি মূল্যায়ন করে এবং তার মানের উপর ভিত্তি করে যথাযথ বস্তুটিকে আক্ষরিক প্রদান করে (অর্থাত্ কনস্ট চর * এর জন্য এনএসএসস্ট্রিং, ইনট এর জন্য এনএসবার ইত্যাদি)।


0

আমি এটি দিয়ে এনএসএসস্ট্রিংয়ের একটি বিভাগ তৈরি করেছি

+ (instancetype)stringWithBool:(BOOL)boolValue {
return boolValue ? @"YES" : @"NO";
}

এবং এটি এর মতো ব্যবহার করুন:

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