প্রাথমিক স্মৃতি-সম্পর্কিত সমস্যা সম্পর্কে আপনার এখনও সচেতন হওয়া দরকার হ'ল চক্রটি বজায় রাখা। এটি ঘটে যখন একটি বস্তুর কাছে অন্যটির কাছে শক্তিশালী পয়েন্টার থাকে তবে লক্ষ্য অবজেক্টটির মূলটিতে শক্তিশালী পয়েন্টার থাকে। এমনকি যখন এই অবজেক্টগুলির সাথে অন্যান্য সমস্ত উল্লেখ মুছে ফেলা হয়, তারা তখনও একে অপরকে ধরে রাখবে এবং মুক্তি পাবে না। এটি অপ্রত্যক্ষভাবে ঘটতে পারে, অবজেক্টগুলির একটি শৃঙ্খলার দ্বারা যা শৃঙ্খলে শেষের বস্তুটিকে পূর্ববর্তী কোনও বস্তুর উল্লেখ করে থাকতে পারে one
এটি এই কারণেই __unsafe_unretained
এবং __weak
মালিকানার যোগ্যতা বিদ্যমান। প্রাক্তন এটি চিহ্নিত করে এমন কোনও বস্তু ধরে রাখবে না, তবে পাতাগুলি সেই অবজেক্টের দূরে যাওয়ার সম্ভাবনাটি খোলে এবং এটি খারাপ স্মৃতির দিকে ইঙ্গিত করে, যদিও পরেরটি বস্তুটি ধরে রাখে না এবং লক্ষ্য স্থির হয়ে গেলে স্বয়ংক্রিয়ভাবে শূন্য হয়ে যায়। দুটির __weak
মধ্যে সাধারণত এটি সমর্থন করে এমন প্ল্যাটফর্মগুলিতে পছন্দ করা হয়।
আপনি এই কোয়ালিফায়ারকে প্রতিনিধিদের মতো জিনিসের জন্য ব্যবহার করবেন যেখানে আপনি চান না যে অবজেক্টটি তার প্রতিনিধি ধরে রাখতে পারে এবং সম্ভাব্যভাবে একটি চক্রের দিকে পরিচালিত করে।
উল্লেখযোগ্য মেমরি-সম্পর্কিত উদ্বেগের আরেকটি হল হ'ল কোর ফাউন্ডেশন অবজেক্টগুলি পরিচালনা করা এবং মেমরির malloc()
মতো ধরণের জন্য ব্যবহার করে বরাদ্দ করা char*
। এআরসি এই ধরণেরগুলি পরিচালনা করে না, কেবলমাত্র উদ্দেশ্যমূলক-সি অবজেক্টস, তাই আপনাকে এখনও সেগুলি নিজেই মোকাবেলা করতে হবে। কোর ফাউন্ডেশনের ধরণগুলি বিশেষত মুশকিল হতে পারে, কারণ কখনও কখনও সেগুলি ওজেক্টিভ-সি অবজেক্টগুলির সাথে মিলে যায় এবং তদ্বিপরীতভাবে ব্রিজ করা প্রয়োজন। এর অর্থ হ'ল সিএফ প্রকার এবং অবজেক্টিভ-সি এর মধ্যে ব্রিজ করার সময় নিয়ন্ত্রণটিকে এআরসি থেকে পিছনে পিছনে স্থানান্তরিত করা দরকার। এই গণনার জমকালো অনুষ্ঠান এর সাথে সম্পর্কিত কিছু কীওয়ার্ড যোগ করা হয়েছে, এবং মাইক অ্যাশ বিভিন্ন গণনার জমকালো অনুষ্ঠান, একটি ক্ষেত্রে বিরাট বিবরণ নেই তার লম্বা এআরসি কাজের মধ্যে থাকবেন ।
এগুলি ছাড়াও আরও বেশ কয়েকটি ঘন ঘন ঘন ঘন, তবে এখনও সম্ভাব্য সমস্যাযুক্ত মামলা রয়েছে যা প্রকাশিত স্পেসিফিকেশনটি বিশদে বিশদে চলে গেছে।
যতক্ষণ না তাদের কাছে শক্তিশালী পয়েন্টার রয়েছে ততক্ষণ অবজেক্টগুলিকে রাখার উপর ভিত্তি করে বেশিরভাগ নতুন আচরণ ম্যাকের আবর্জনা সংগ্রহের মতো similar তবে প্রযুক্তিগত আন্ডারপিনিংগুলি খুব আলাদা। আবর্জনা পরিষ্কার করার জন্য নিয়মিত বিরতিতে চলতে থাকা কোনও আবর্জনা সংগ্রহকারী প্রক্রিয়া না করে বরং স্মৃতি পরিচালনার এই স্টাইলটি দৃ retain় ধরে রাখা / প্রকাশের নিয়মের উপর নির্ভর করে যা আমাদের সকলকে উদ্দেশ্য-সিতে মেনে চলতে হবে।
এআরসি কেবল বছরের পর বছর ধরে আমাদের পুনরাবৃত্তিমূলক মেমরি পরিচালনার কাজগুলি গ্রহণ করে এবং সেগুলি সংকলকটিতে লোড করে দেয় যাতে আমাদের আর কখনও তাদের নিয়ে চিন্তা করতে হবে না। এইভাবে, আবর্জনা সংগ্রহ করা প্ল্যাটফর্মগুলিতে আপনার থামার সমস্যা বা করণীয় মেমরির প্রোফাইল নেই। আমি আমার আবর্জনা সংগ্রহ করা ম্যাক অ্যাপ্লিকেশনগুলিতে উভয়টিই অভিজ্ঞতা পেয়েছি এবং এআরসি এর আওতায় তারা কী আচরণ করে তা দেখার জন্য আমি আগ্রহী।
আবর্জনা সংগ্রহ বনাম এআরসি সম্পর্কিত আরও তথ্যের জন্য, অবজেক্টিভ-সি মেলিং তালিকায় ক্রিস ল্যাটারের এই আকর্ষণীয় প্রতিক্রিয়াটি দেখুন , যেখানে তিনি উদ্দেশ্য-সি 2.0 আবর্জনা সংগ্রহের তুলনায় এআরসি-র অনেক সুবিধা তালিকাভুক্ত করেছেন। তিনি বর্ণনা করেছেন এমন বেশ কয়েকটি জিসি ইস্যু আমি চালিয়েছি।