ডাব্লুডাব্লুডিসি 2014 সেশনে 403 ইন্টারমিডিয়েট সুইফ্ট এবং ট্রান্সক্রিপ্ট , নিম্নলিখিত স্লাইড ছিল
সেক্ষেত্রে স্পিকার বলেছিলেন, আমরা যদি [unowned self]
সেখানে ব্যবহার না করি তবে এটি একটি স্মৃতি ফাঁস হবে। এর অর্থ কি আমাদের সর্বদা [unowned self]
বন্ধের ভিতরে ব্যবহার করা উচিত ?
উপর সুইফট আবহাওয়ার অ্যাপের ViewController.swift লাইন 64 , আমি ব্যবহার করি না [unowned self]
। তবে আমি কিছু @IBOutlet
সের মত self.temperature
এবং ব্যবহার করে ইউআই আপডেট করি self.loadingIndicator
। এটি ঠিক হতে পারে কারণ @IBOutlet
আমি সংজ্ঞায়িত সমস্ত গুলি weak
। তবে সুরক্ষার জন্য, আমাদের কি সর্বদা ব্যবহার করা উচিত [unowned self]
?
class TempNotifier {
var onChange: (Int) -> Void = {_ in }
var currentTemp = 72
init() {
onChange = { [unowned self] temp in
self.currentTemp = temp
}
}
}
onChange
একটি [weak self]
ক্লোজার হওয়া উচিত , সুতরাং অন্য কোনও বস্তু টেম্পন্টিফায়ার অবজেক্টটিকে চারপাশে রেখে (অনির্দিষ্টকালের জন্য যদি) অবজেক্ট ব্যবহার ভেতরে যেতে দেয়নি যেতে onChange
না হওয়া পর্যন্ত উদ্ধার অবসান TempNotifier
চলে গেছে, নিজস্ব দুর্বল সুত্র মাধ্যমে TempNotifier
) । যদি var onChange …
হয় private var onChange …
তবে [unowned self]
সঠিক হবে। আমি যদিও এর 100% নিশ্চিত নই; আমি ভুল হলে কেউ দয়া করে আমাকে সংশোধন করুন।
[]
? আমি অ্যাপল ডক্সে ব্যাখ্যাটি খুঁজে পাচ্ছি না।
{}
খালি ক্লোজার (বন্ধের উদাহরণ) ডিফল্ট হিসাবে (কোনও কিছু করে না), (Int) -> Void
এটি ক্লোজার সংজ্ঞা।