मैं अपने आईफोन ऐप के लिए कक्षा में काम कर रहा हूं, और मैं इसे पंजीकरण करना चाहता हूं और आवेदन राज्य परिवर्तनों से अवगत रहना चाहता हूं (UIApplicationDidEnterBackgroundNotification
, आदि)। स्मृति में तत्काल वस्तु को रखने के बिना अधिसूचनाओं के लिए कक्षा पंजीकृत करने का कोई तरीका है? मैं सिर्फ उचित अधिसूचनाएं कक्षा को कॉल करने के लिए कॉल करना चाहता हूं, कुछ सामान करता हूं, और फिर स्मृति को फिर से छोड़ देता हूं।क्या मैं NSNotifications के लिए कक्षा पंजीकृत कर सकता हूं? क्या मैं NSNotifications के साथ क्लास विधियों का उपयोग कर सकता हूं?
अभी मैं init विधि में निम्नलिखित है:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(handleEnteredBackground)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
और इस विधि वर्ग के मीटर फ़ाइल में कहीं:
- (void) handleEnteredBackground {
NSLog(@"Entered Background"); }
मैं applicationDidLoad
के तहत एक बार वर्ग का दृष्टांत, लेकिन चूंकि मैं इसके साथ कुछ नहीं करता हूं, मुझे लगता है कि एआरसी ऑब्जेक्ट को स्मृति से मारता है और ऐप क्रैश हो जाता है (बिना किसी उपयोगी त्रुटि कोड के, आपको दिमाग) जब मैं इसे बंद करने के लिए जाता हूं। यदि मैं handleEnteredBackground
को "+" चिह्न के साथ क्लास विधि में स्विच करता हूं, तो जब मैं ऐप बंद करता हूं तो मुझे अमान्य चयनकर्ता त्रुटियां मिलती हैं।
अंतिम लक्ष्य एक ऐप के जीवन चक्र में एक बार कक्षा को तुरंत चालू करना है और यह कक्षा के बाहर किसी भी अतिरिक्त कोड के बिना ऐप राज्य परिवर्तनों का जवाब देने में सक्षम है। आईओएस 5 + एक्सकोड 4.2 +
यह एक बढ़िया समाधान की तरह लगता है ... मैं इसे एक शॉट देने के लिए और जवाब को स्वीकार किए जाने के बाद की कोशिश करने का मौका मिला है जाएगा बाहर! – Amos
कोई समस्या नहीं है। यदि आपके पास और प्रश्न हैं तो बस यहां लिखें। – hwaxxer