প্রশ্ন
অ্যাপলের ডক্স এটিকে নির্দিষ্ট করে:
যখন কোনও সম্পত্তি প্রথম শুরু করা হয় তখন উইলসেট এবং ডেটসেট পর্যবেক্ষকদের ডাকা হয় না। এগুলি তখনই ডাকা হয় যখন সম্পত্তির মান সূচনা প্রসঙ্গে বাইরে সেট করা থাকে।
আরম্ভের সময় এগুলি জোর করে বলা কি সম্ভব?
কেন?
ধরা যাক আমার এই ক্লাস আছে
class SomeClass {
var someProperty: AnyObject {
didSet {
doStuff()
}
}
init(someProperty: AnyObject) {
self.someProperty = someProperty
doStuff()
}
func doStuff() {
// do stuff now that someProperty is set
}
}
doStuffপ্রসেসিং কলগুলি আরও সংক্ষিপ্ততর করার জন্য আমি পদ্ধতিটি তৈরি করেছি , তবে আমি কেবল didSetফাংশনের মধ্যে থাকা সম্পত্তিটি প্রক্রিয়া করব । আরম্ভের সময় এই কল করতে বাধ্য করার কোনও উপায় আছে কি?
হালনাগাদ
আমি ঠিক করেছি আমার ক্লাসের জন্য সুবিধামত অন্তর্নিদীকরণ অপসারণ এবং প্রারম্ভিককরণের পরে আপনাকে সম্পত্তি সেট করতে বাধ্য করব। এটি আমাকে জানার অনুমতি দেয় didSetসর্বদা ডাকা হবে। এটি সামগ্রিকভাবে আরও ভাল কিনা তা আমি স্থির করি নি, তবে এটি আমার পরিস্থিতির পক্ষে ভাল।
deferconvenience init(someProperty: AnyObject) { self.init() defer { self.someProperty = someProperty }