স্পষ্টতার জন্য আমি একটি প্রাথমিক লুপ তৈরি করতে চাই যেখানে আমি মুছতে আইটেমগুলি সংগ্রহ করি। তারপরে আমি সেগুলি মুছব। অবজেক্টিভ-সি 2.0 সিনট্যাক্স ব্যবহার করে এখানে একটি নমুনা দেওয়া হয়েছে:
NSMutableArray *discardedItems = [NSMutableArray array];
for (SomeObjectClass *item in originalArrayOfItems) {
if ([item shouldBeDiscarded])
[discardedItems addObject:item];
}
[originalArrayOfItems removeObjectsInArray:discardedItems];
তারপরে সূচকগুলি সঠিকভাবে আপডেট হচ্ছে কিনা, বা অন্যান্য সামান্য বুককিপিংয়ের বিশদ সম্পর্কিত কোনও প্রশ্ন নেই।
যুক্ত করতে সম্পাদিত:
অন্য উত্তরে এটি উল্লিখিত হয়েছে যে বিপরীতমুখী গঠন দ্রুত হওয়া উচিত। অর্থ্যাৎ যদি আপনি অ্যারের মাধ্যমে পুনরাবৃত্তি করেন এবং অবজেক্টগুলি ফেলে দেওয়ার পরিবর্তে রাখার জন্য অবজেক্টের নতুন অ্যারে রচনা করেন। এটি সত্য হতে পারে (যদিও নতুন অ্যারে বরাদ্দের মেমরি এবং প্রসেসিং ব্যয় সম্পর্কে কী বলা যায়, এবং পুরানোটি বাতিল করে দেওয়া হয়?) তবে এটি দ্রুততর হলেও এটি নির্দোষ বাস্তবায়নের জন্য এত বড় চুক্তি নাও হতে পারে, কারণ এনএসআরাই "সাধারণ" অ্যারের মতো আচরণ করবেন না। তারা কথা বলে তবে তারা আলাদা হাঁটাচলা করে। এখানে একটি ভাল বিশ্লেষণ দেখুন:
বিপরীতমুখী সূত্রটি দ্রুততর হতে পারে তবে এটি কিনা সেদিকে আমার কখনই নজর দেওয়ার প্রয়োজন নেই কারণ উপরের সূত্রটি আমার প্রয়োজনের জন্য সর্বদা যথেষ্ট দ্রুত ছিল।
আমার কাছে টোক-হোম বার্তাটি হ'ল যেই সূত্রটি আপনার কাছে পরিষ্কার use প্রয়োজন হলেই অনুকূলিত করুন। আমি ব্যক্তিগতভাবে উপরের সূত্রটি সবচেয়ে পরিষ্কার দেখতে পেয়েছি, যে কারণে আমি এটি ব্যবহার করি। তবে যদি বিপরীত সূত্রটি আপনার কাছে আরও পরিষ্কার হয় তবে এটির জন্য যান।