Frage Wie erstellt man ein Objekt von NSNotification in Objective-C?


Ich möchte ein Objekt von NSNotification als sagen:

NSNotification *obj=[[NSNotification alloc]init];

aber wenn ich das so erstelle, bekomme ich eine Ausnahme als 'NSConcreteNotification init: is not allowed'. Wie soll ich dieses Problem lösen?


5
2018-02-22 08:20


Ursprung


Antworten:


Von dem NSNotifikation Dokumentation:

Sie können ein Benachrichtigungsobjekt mit den Klassenmethoden erstellen notificationWithName:object: oder notificationWithName:object:userInfo:. Normalerweise erstellen Sie jedoch keine eigenen Benachrichtigungen direkt. Die NSNotificationCenter-Methoden postNotificationName:object: und postNotificationName:object:userInfo: können Sie bequem eine Benachrichtigung posten, ohne sie vorher zu erstellen.


7
2018-02-22 08:23



NSNotificationCenter verfügt über bequeme Methoden zum Erstellen und Versenden von Benachrichtigungen:

[[NSNotificationCenter defaultCenter] 
               postNotificationName:XYYourNotification
               object:@"someObject"];

Wenn Sie Ihre eigenen Benachrichtigungen verwenden möchten, erstellen Sie den Benachrichtigungsnamen extern:

extern NSString* const XYYourNotification;

und definieren Sie den tatsächlichen NSString * in Ihrer Implementierung.
Wenn Sie für Ihre Benachrichtigungsnamen Zeichenfolgenkonstanten verwenden, ist Ihr Code weniger fehleranfällig für Tippfehler.


2
2018-02-22 08:41