Ich habe ein Array von Objekten, die mit CGPoints positioniert werden. Zu bestimmten Zeiten in meiner App muss ein Objekt im Array andere nicht gruppierte Objekte über seine Position informieren. Ich verstehe, dass NSNotification der beste Weg zu gehen ist, aber ich finde kein anständiges Beispiel für einen "Absender" und "Empfänger" für die Benachrichtigung, die einen CGPoint als Benutzerinfo umschließt und auspackt. Kann jemand helfen?NSNotification Benutzerinfo Beispiel?
5
A
Antwort
15
In Cocoa Touch (aber nicht Cocoa), kann CGPoints mit
verpackten und unverpackten werdenNSValues können im NSDictionary gespeichert werden, das als userinfo-Parameter übergeben wird.
Zum Beispiel:
NSValue* value = [NSValue valueWithCGPoint:mypoint];
NSDictionary* dict = [NSDictionary dictionaryWithObject:value forKey:@"mypoint"];
Und in Ihrer Meldung:
NSValue* value = [dict objectForKey:@"mypoint"];
CGPoint newpoint = [value CGPointValue];
1
Das Objekt userinfo, das mit der Benachrichtigung übergeben wird, ist einfach ein NSDictionary. Die einfachste Möglichkeit, einen CGPoint in der Benutzerinfo zu übergeben, wäre, die X- und Y-Koordinaten in NSNumbers mit -numberWithFloat: einzupacken. Sie können dann setObject: forKey: im userinfo-Wörterbuch verwenden, indem Sie beispielsweise Xpos und Ypos als Schlüssel verwenden.
könnten Sie wahrscheinlich, dass einpacken in eine schöne Kategorie auf NSMutableDictionary, mit Methoden wie setFloat: forKey oder etwas ...
Verwandte Themen
- 1. Login nicht beibehalten Benutzerinfo
- 2. UIApplicationLaunchOptionsRemoteNotificationKey erhält keine Benutzerinfo
- 3. OCUnit testing NSNotification delivery
- 4. Was ist NSNotification?
- 5. NSNotification zwischen Geschwisteransichten
- 6. Klasse als NSNotification-Beobachter?
- 7. Unterschied zwischen NSNotification und NSEvent
- 8. Facebook iOS 6 - Benutzerinfo abrufen
- 9. NSNotification nicht gesendet, wenn postNotificationName:
- 10. C# /. Net-Äquivalent von NSNotification
- 11. Warten bis NSNotification empfangen wird
- 12. NSNotification spielt nicht heruntergeladenen Sound
- 13. Benutzerinfo mit OAuth mit Google App Engine
- 14. iOS 9 - NSUserActivity Benutzerinfo-Eigenschaft zeigt Null
- 15. Benutzerinfo in CSV exportieren - Zusätzliche Spalte
- 16. Google API Java Client - Benutzerinfo abrufen
- 17. Aktuelle Benutzerinfo von Twitter API abrufen
- 18. Wie nsnotification Text von einem Array laden
- 19. Extract Video URL von NSNotification Asset-
- 20. Warum der Observer in NSNotification zweimal aufgerufen ....?
- 21. NSNotification stoppt Methode von der Arbeit völlig
- 22. Wie Übergeben von UserInfo in NSNotification?
- 23. Löschen von Zellen aus UICollectionView über NSNotification
- 24. NSNotification unerkannte Selektor gesendet Instanz in Swift
- 25. NSNotification Posting, wenn Push-Crash-Empfang
- 26. NSNotification einmal gesendet, aber mehrmals empfangen
- 27. Wo Beobachter in Swift für NSNotification entfernen?
- 28. NSNotification Unterklasse mit Generics in Swift 2.1
- 29. Benutzerinfo zu txt Datei, die zu lesen ist
- 30. Inhalt von/Benutzerinfo Antwort von Wso2 Identity Server
In Cocoa, können Sie NSPointFromCGPoint verwenden, dann NSValue des valueWithPoint benutzen und Pointvalue. –
Oder Sie können mit NS_BUILD_32_LIKE_64 vordefiniert erstellen, in diesem Fall NSPoint ist ein Typedef für CGPoint (es ist immer in 64-Bit-Builds). –