objective c - একটি ব্লকের বাইরে একটি পরিবর্তনশীল ব্লক ভিতরে একটি পরিবর্তনশীল বরাদ্দ করুন




objective-c compiler-errors (5)

আমি একটি ত্রুটি পেয়েছি

পরিবর্তনশীল নির্ধারণযোগ্য নয় (__block টাইপ স্পেসিফিকেশন অনুপস্থিত)

লাইন aPerson = participant; । ব্লক অ্যাক্সেসের পরিবর্তনশীল অ্যাক্সেস অ্যাক্সেস করতে পারে এবং aPerson পরিবর্তনশীলটি ফেরত aPerson কিনা তা আমি কীভাবে নিশ্চিত করতে পারি?

Person *aPerson = nil;

[participants enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {   
    Person *participant = (Person*)obj;

    if ([participant.gender isEqualToString:@"M"]) {
        aPerson = participant;
        *stop = YES;
    }
}];

return aPerson;

আপনার সমস্যার সমাধান করার জন্য আপনাকে কোডের এই লাইনটি ব্যবহার করতে হবে:

__block Person *aPerson = nil;

আরো বিস্তারিত জানার জন্য, এই টিউটোরিয়ালটি পড়ুন: ব্লক এবং ভেরিয়েবল


ব্লকের অভ্যন্তরে একটি ভেরিয়েবল বরাদ্দ করতে যা ব্লকের বাইরে সর্বদা __block স্পেসিফায়ার ব্যবহার করে সেই পরিবর্তনশীলের আগে আপনার কোডটি এই রকম হওয়া উচিত: -

__block Person *aPerson = nil;

শুধু একটি ভুল একটি অনুস্মারক আমি নিজেকে তৈরি, দী

 __block

ঘোষণাকারী প্রথমে পরিবর্তনশীল ঘোষণা করা উচিত, অর্থাৎ ব্লকের বাইরে, এটির অভ্যন্তরে নয়। এই পরিবর্তনশীল সম্পর্কে মন্তব্য উল্লিখিত সমস্যার সমাধান করা উচিত নয় ব্লক বাইরে তার মান বজায় রাখা।


হ্যাঁ ব্লকটি সর্বাধিক ব্যবহৃত কার্যকারিতা, তাই বজায় রাখা চক্র এড়ানোর জন্য আমাদের ব্লকটির ভেতর অন্তর্ভূক্ত দৃঢ় ভেরিয়েবল ব্যবহার করা উচিত নয়, যদিও উইক বা দুর্বল ব্যবহার করা সত্ত্বেও।


__block Person *aPerson = nil;




objective-c-blocks