असली सवाल यह है कि आप यह नहीं जानते कि आप इसे देख रहे हैं या नहीं।
यदि आप ऑब्जेक्ट की कक्षा में ऐसा कर रहे हैं, तो रोकें। जो कुछ भी इसे देख रहा है वह उम्मीद करता है कि इसका अवलोकन किया जाए। यदि आप पर्यवेक्षक की सूचनाओं को उसके ज्ञान के बिना काट देते हैं, तो चीजों को तोड़ने की अपेक्षा करें; अधिक विशेष रूप से, पर्यवेक्षक की स्थिति को बासी जाने की अपेक्षा करें क्योंकि यह पूर्व-देखी गई वस्तु से अपडेट प्राप्त नहीं करता है।
यदि आप ऑब्जर्विंग ऑब्जेक्ट की कक्षा में ऐसा कर रहे हैं, तो बस यह याद रखें कि आप किन वस्तुओं का अवलोकन कर रहे हैं (या, यदि आप कभी केवल एक ऑब्जेक्ट का निरीक्षण करते हैं, चाहे आप इसे देख रहे हों)। यह मान रहा है कि अवलोकन गतिशील है और दो अन्यथा असंबंधित वस्तुओं के बीच; यदि ऑब्जर्वर मनाया का मालिक है, तो ऑब्जर्वर को जोड़ने या बनाए रखने के बाद ऑब्जर्वर जोड़ें, और ऑब्जर्वर को हटाने से पहले आप ऑब्जर्वर को रिलीज़ करें।
ऑब्जर्वर के रूप में किसी ऑब्जेक्ट को जोड़ना और हटाना आमतौर पर ऑब्जर्वर की क्लास में होना चाहिए, और ऑब्जर्व्ड ऑब्जेक्ट में कभी नहीं।
addObserver:
करकेviewWillAppear:
औरremoveObserver:
अंदर सेviewWillDisappear:
, कॉल को सही तरीके से जोड़ा गया था। मुझे एक त्वरित समाधान करना है इसलिए मैं कोशिश-कैच समाधान को लागू करने जा रहा हूं और आगे के कारणों की जांच करने के लिए एक टिप्पणी छोड़ दूंगा।