স্ট্রং এবং উইক রেফারেন্স

মেমোরি ম্যানেজমেন্ট - সুইফট প্রোগ্রামিং (Swift Programming) - Computer Programming

202

Swift-এ মেমোরি ম্যানেজমেন্টের জন্য স্ট্রং এবং উইক রেফারেন্স ব্যবহৃত হয়। এগুলো মূলত অবজেক্টের লাইফসাইকেল নিয়ন্ত্রণ করতে সহায়ক।

Swift-এ স্ট্রং (Strong) এবং উইক (Weak) রেফারেন্স


১. স্ট্রং রেফারেন্স

  • স্ট্রং রেফারেন্স একটি অবজেক্ট ধরে রাখে এবং যতক্ষণ পর্যন্ত একটি স্ট্রং রেফারেন্স অবশিষ্ট থাকে, ততক্ষণ পর্যন্ত সেই অবজেক্ট ডি-অ্যালোকেট হবে না।
  • ডিফল্টভাবে, সব রেফারেন্স স্ট্রং হয়।
class Person {
    var name: String
    
    init(name: String) {
        self.name = name
    }
}

var person1 = Person(name: "Alice")
var person2 = person1 // person2 একটি স্ট্রং রেফারেন্স ধারণ করছে
  • এখানে, person1 এবং person2 উভয়ই Person অবজেক্টের স্ট্রং রেফারেন্স ধরে রাখছে।

২. উইক রেফারেন্স

  • উইক রেফারেন্স এমন রেফারেন্স যা অবজেক্টের মালিকানা ধরে রাখে না এবং অবজেক্টের রেফারেন্স কাউন্ট বাড়ায় না। এটি মেমোরি লিক এড়াতে ব্যবহৃত হয়, বিশেষত strong reference cycle থেকে রক্ষা পেতে।
  • উইক রেফারেন্সের ডেটা nil হতে পারে, তাই এটি সবসময় optional হিসেবে ডিক্লেয়ার করতে হয়।
class Car {
    var model: String
    weak var owner: Person?
    
    init(model: String) {
        self.model = model
    }
}
  • এখানে, owner প্রোপার্টি একটি উইক রেফারেন্স, যা Person অবজেক্টের রেফারেন্স ধরে রাখে, কিন্তু তার মালিকানা ধরে রাখে না।

কেন স্ট্রং এবং উইক রেফারেন্স ব্যবহার করা হয়?

  • স্ট্রং রেফারেন্স: অবজেক্ট মেমোরিতে ধরে রাখতে।
  • উইক রেফারেন্স: Strong reference cycle এড়াতে, যাতে অবজেক্ট সঠিক সময়ে ডি-অ্যালোকেট হয়।

স্ট্রং এবং উইক রেফারেন্স সঠিকভাবে ব্যবহার করে মেমোরি ম্যানেজমেন্ট এবং মেমোরি লিক প্রতিরোধ করা যায়, যা অ্যাপ্লিকেশনের পারফরম্যান্স এবং স্থায়িত্ব নিশ্চিত করে।

Content added By
Promotion

Are you sure to start over?

Loading...