BOOL এর ডিফল্ট মান


উত্তর:


176

নেই কোন ডিফল্ট মান যদি আপনি লিখতে

-(void)somemethod {
  BOOL x;  // <--- no default value

এটি আবর্জনা থেকে আরম্ভ করা হয়।

যাইহোক, একটি BOOL আইভারের জন্য , এটিতে সূচনা করা হবে NO, কারণ পুরো উদাহরণটি শুরুর দিকে 0 দিয়ে পূর্ণ হয়।

(দ্রষ্টব্য: যখন আরসি সক্ষম করা হবে, স্থানীয় অবজেক্ট পয়েন্টারগুলির সর্বদা একটি ডিফল্ট মান থাকবে nilতবে BOOL এর মতো অ-অবজেক্ট ধরণের স্থানীয় ভেরিয়েবলগুলি আবর্জনা থেকে আরম্ভ করা হবে ized স্থানীয় ভেরিয়েবলগুলি শূন্যে সেট করা আছে? (উদ্দেশ্য-সি) দেখুন ))


4
সর্বদা একই আবর্জনা হয়ে উঠতে আপনি কি নন-আইভার বিওএল এ বিশ্বাস করতে পারেন? না এটা আলাদা? (উদাহরণস্বরূপ, আমি এটি এনএসলগের বিবৃতিতে '2' এর পূর্ণসংখ্যার মানটি মূল্যায়ন করতে দেখছি)
বেন্টফোর্ড

8
@ বেন্টফোর্ড: না আপনি পারবেন না।
কেনেটিএম

4
তুচ্ছ মনে হচ্ছে তবে জানা খুব গুরুত্বপূর্ণ! ধন্যবাদ !!
ট্রিলিয়নস

4
@ কেনিটিএম "এআরসি সক্ষম থাকা বিওএল-এর মতো নন-অবজেক্ট টাইপগুলি এখনও আবর্জনা থেকে শুরু করা হবে"। আপনি কি এ ব্যাপারে নিশ্চিত? আপনি যে লিঙ্কটি সরবরাহ করেছেন তাতে বলা হয়েছে "আপনি যখন কোনও বস্তু বরাদ্দ করেন তখন অবজেক্টিভ-সি অবজেক্টের ইনস্ট্যান্স ভেরিয়েবলগুলি সর্বদা 0 (বা শূন্য) এ সেট থাকে" এবং আমি অন্য কোনও, পরিষ্কার, রেফারেন্স খুঁজে পাই না, সুতরাং এটি আমার কাছে কিছুটা বিপরীত।
ক্রিস্টফ ভ্যান ল্যান্ডস্কুট

4
আমার ক্ষেত্রে, BOOL স্থানীয় ভেরিয়েবল 0 তে সেট করা হয়েছে, এটি কোনও নয়। কিন্তু রিলিজ মোডে তৈরি করার সময় এটি হ্যাঁ।
ngn999

24

আমি এক্সকোড 5.1, ওএস এক্স মাভারিক্স 10.9.4 ব্যবহার করে নিজস্ব কিছু পরীক্ষা-নিরীক্ষা করেছি। যারা আলগ জানেন না তাদের জন্য একটি পরিবর্তিত এনএসএলগ। যাইহোক, প্রথম পরীক্ষাটি isLandscapeজনসাধারণের ভেরিয়েবল হিসাবে ব্যবহার করা ছিল , যার সাথে @synthesizeপ্যারেন্ট ভিউ কন্ট্রোলার (নীচে প্রদর্শিত) দ্বারা অ্যাক্সেস করতে হবে। দ্বিতীয় পরীক্ষা ব্যবহার করা হয়নি @synthesizeএবং আমি স্পষ্টতই self.isLandscapeকনসোলে একই ফল পেয়েছি । কনসোল আউটপুটটি আমার কোডের নীচে। তৃতীয় পরীক্ষাটি কোনও পদ্ধতির অভ্যন্তরে স্থানীয় পরিবর্তনশীল হিসাবে 'ইসল্যান্ডস্কেপ' ব্যবহার করে।

@interface MyClass : UIView // (subclass used in my UIViewController)@property (nonatomic) BOOL isLandscape;  // < - - - testing this BOOL@implementation MyClass@synthesize isLandscape;

- (void)awakeFromNib
{
    [super awakeFromNib];
    // Test for YES or NO
    if (isLandscape == YES) {
        ALog(@"isLandscape == YES");
    } else if (isLandscape == NO) {
        ALog(@"isLandscape == NO");
    } else {
        ALog(@"isLandscape != YES/NO");
    }
    // Test for nil or non-nil
    if (isLandscape) {
        ALog(@"isLandscape");
    } else if (!isLandscape) {
        ALog(@"!isLandscape");
    } else {
        ALog(@"!= nil/non-nil");
    }
    // Test its value
    ALog(@"isLandscape == %d", isLandscape);
}

এই ফলাফলগুলি প্রথম দুটি পরীক্ষার ...

2014-08-28 08:18:52.909 MyApp[493:60b] -[MyClass awakeFromNib] [Line 157] isLandscape == NO
2014-08-28 08:18:52.911 MyApp[493:60b] -[MyClass awakeFromNib] [Line 166] !isLandscape
2014-08-28 08:18:52.912 MyApp[493:60b] -[MyClass awakeFromNib] [Line 172] isLandscape == 0

তৃতীয় অভিজ্ঞতায় 'ল্যান্ডস্কেপ' আর সম্পত্তি ছিল না। আকর্ষণীয় ফলাফল সহ আমি এটি স্থানীয় পরিবর্তনশীল হিসাবে সেট করেছি:

- (void)awakeFromNib
{
    [super awakeFromNib];
    BOOL isLandscape; // < - - - testing this BOOL
    // Test for YES or NO
    if (isLandscape == YES) {
        ALog(@"isLandscape == YES");
    } else if (isLandscape == NO) {
        ALog(@"isLandscape == NO");
    } else {
        ALog(@"isLandscape != YES/NO");
    }
    // Test for nil or non-nil
    if (isLandscape) {
        ALog(@"isLandscape");
    } else if (!isLandscape) {
        ALog(@"!isLandscape");
    } else {
        ALog(@"!= nil/non-nil");
    }
    // Test its value
    ALog(@"isLandscape == %d", isLandscape);
}

এই ফলাফলগুলি তৃতীয় পরীক্ষার ...

2014-08-28 08:28:33.483 MyApp[581:60b] -[MyClass awakeFromNib] [Line 159] isLandscape != YES/NO
2014-08-28 08:28:33.486 MyApp[581:60b] -[MyClass awakeFromNib] [Line 164] isLandscape
2014-08-28 08:28:33.487 MyApp[581:60b] -[MyClass awakeFromNib] [Line 172] isLandscape == -24

আমি অনুমান করছি যে বৈশিষ্ট্যগুলি আমার বা এক্সকোড দ্বারা স্বয়ংক্রিয়ভাবে আরম্ভ হবে তবে স্থানীয় ভেরিয়েবলগুলি কোনও মান পাবে না। তবুও, [লাইন ১ 16৪] দেখুন স্থানীয় ভেরিয়েবল হ্যাঁ বা কোনও নয় তবে এটি অ-শূন্য? আমি অনুমান করি যে এটি (এলোমেলো) আবর্জনা মূল্য যা আপনি বিশ্বাস করতে পারেন না। আমি আশা করি এটি পরবর্তী ব্যক্তিকে সহায়তা করবে। আমি কিছু শিখেছি কিন্তু আমি মন্তব্য প্রতীক্ষিত। ধন্যবাদ এবং শুভকামনা!

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