नहीं ले पा रहा है कि क्यों एक सूचना प्राप्त नहीं होगा करने के लिए के रूप में मानक कारणों के बारे में पता कर रहा हूँ:NSNotificationCenter ऑब्जर्वर अधिसूचना
- Deallocating या पंजीकृत वस्तु समाप्त करते हुये।
- ऑब्जेक्ट को पर्यवेक्षक के रूप में हटा रहा है।
- पर्यवेक्षक के रूप में पंजीकरण नहीं कर रहा है।
- गलत अधिसूचना के लिए पंजीकरण या गलत अधिसूचना पोस्ट करना।
मैं खुशी से कह सकता हूं कि मुझे यकीन है कि इनमें से कोई भी नहीं हो रहा है। मुझे लगता है कि सबसे अधिक संभावना यह है कि वस्तु किसी बिंदु पर निरस्त और पुनर्निर्मित की जा रही है, लेकिन यह प्रारंभिकरण पर अधिसूचना के लिए पंजीकृत है।
यहाँ है जहाँ मैं रजिस्टर:
/**
* initialises an object with a unique file url
*
* @param url the url to set as the file url
*/
- (id)initWithFileURL:(NSURL *)url
{
if (self = [super initWithFileURL:url])
{
self.entries = [[NSMutableArray alloc] init];
// we want to be notified when a note has changed
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(noteChanged)
name:@"com.andbeyond.jamesvalaitis.notesChanged"
object:self];
NSLog(@"Just registered for 'com.andbeyond.jamesvalaitis.notesChanged'");
}
return self;
}
वह स्थान है जहां मैं सूचना पोस्ट:
/**
* called when a note has changed
*/
- (void)noteChanged:(NSNotification *)notification
{
NSLog(@"Just received for 'com.andbeyond.jamesvalaitis.notesChanged'");
// save the notes
[self saveToURL:self.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:^(BOOL success)
{
if (success)
NSLog(@"Note updated.");
}];
}
यह:
/**
* save the note content
*/
- (void)saveNote
{
if (_isChanged)
{
// save to the text view to the note's contents
self.note.noteContent = self.noteView.text;
// post a notification that we changed the notes
[[NSNotificationCenter defaultCenter] postNotificationName:@"com.andbeyond.jamesvalaitis.notesChanged" object:nil];
NSLog(@"Just posted 'com.andbeyond.jamesvalaitis.notesChanged'");
// make sure we know it's already saved
_isChanged = NO;
}
}
इस विधि की जाती है कि कहा जाता है नहीं किया जा रहा है कंसोल यह स्पष्ट करता है कि मैं दोनों पंजीकरण और अधिसूचना पोस्ट करता हूं:
2012-11-15 13: 27: 50.958 iCloud कस्टम [11,269: 907] बस के लिए पंजीकृत 'com.andbeyond.jamesvalaitis.notesChanged'
2012-11-15 13: 28: 24.184 iCloud कस्टम [11,269: 907] बस 'com.andbeyond.jamesvalaitis.notesChanged'
The whole project can be found here.
नोट जोड़ें पोस्ट के लिए चेंज विधि ... – chrislhardin
आपका चयनकर्ता अभी भी इस @ चयनकर्ता (नोट चेंज किया गया) जैसा है .. फिर यह इसे कैसे कॉल करेगा - (शून्य) नोट चेंज: (NSNotification *) अधिसूचना ??? आपको अपने चयनकर्ता को इस @ सेलेक्टर (नोट चेंज किया गया :) –
@ दिनेशराज: हाय दिनेश और जेम्स, मुझे एक समान समस्या का सामना करना पड़ रहा है और इस पोस्ट पर सभी उत्तरों के माध्यम से सुझावों को लागू करने की आवश्यकता है; अभी भी चीजें मेरे लिए काम नहीं किया है। मैं अधिसूचना सफलतापूर्वक पोस्ट करने और पर्यवेक्षक को भी घोषित करने में सक्षम हूं। लेकिन तर्क जहां चेक किया जाता है उसे निष्पादित नहीं किया जाता है। मुझे कोड कैसे साझा करना चाहिए? या मुझे एक डुप्लिकेट प्रश्न पोस्ट करना चाहिए? –