Mam tablicę obiektów, które są pozycjonowane przy użyciu CGPoints. W pewnych momentach w mojej aplikacji obiekt w tablicy musi powiadamiać inne nieszablonowe obiekty swojej pozycji. Rozumiem, że NSNotification to najlepsza metoda, ale nie mogę znaleźć przyzwoitego przykładu "nadawcy" i "odbiorcy" dla powiadomienia, które opakowuje i rozpakowuje CGPoint jako userinfo. Czy ktoś może pomóc?Przykład NSNotification userinfo?
5
A
Odpowiedz
15
W Cocoa Touch (ale nie kakao), CGPoints może być opakowane i rozpakowany z
+ (NSValue *)valueWithCGPoint:(CGPoint)point
- (CGPoint)CGPointValue
NSValues można przechowywać w NSDictionary podanym jako parametr userinfo.
Na przykład:
NSValue* value = [NSValue valueWithCGPoint:mypoint];
NSDictionary* dict = [NSDictionary dictionaryWithObject:value forKey:@"mypoint"];
I w zgłoszeniu:
NSValue* value = [dict objectForKey:@"mypoint"];
CGPoint newpoint = [value CGPointValue];
1
Obiekt userinfo przekazany wraz z powiadomieniem jest po prostu NSDictionary. Prawdopodobnie najłatwiejszym sposobem podania punktu CG w informacji o użytkowniku byłoby zawarcie współrzędnych X i Y w NSNumbers za pomocą -numberWithFloat :. Następnie możesz użyć setObject: forKey: w słowniku userinfo używając Xpos i Ypos jako klawiszy na przykład.
Można owinąć pewnie, że się w ładnym kategorii na NSMutableDictionary, metodami takimi jak setFloat: forKey czy coś ...
Powiązane problemy
- 1. NSNotification EXC_BAD_ACCESS
- 2. NSNotification vs. Delegate Protocols?
- 3. Swift NSTimer userinfo
- 4. Przekazywanie danych przez NSTimer UserInfo
- 5. Swift czytać userinfo zdalnego powiadamiania
- 6. Kolejność notowań NSNotification of observer
- 7. NSNotification jest wywoływany wiele razy
- 8. NSNotification prowadzi do błędu segmentacji
- 9. iOS 9 - Właściwość userInfo NSUserActivity wyświetlana null
- 10. NSTimer userInfo. Jak obiekt przechodzi do selektora?
- 11. KVO vs NSNotification kontra protokół/delegaci?
- 12. Dlaczego obserwator w NSNotification zadzwonił dwa razy ...?
- 13. Usuwanie komórek z UICollectionView poprzez NSNotification
- 14. Czy mogę obejrzeć NSNotification z innej klasy?
- 15. NSNotification wysyłany raz, ale jest odbierany wiele razy
- 16. Przykład makiety RSpec Przykład
- 17. przykład
- 18. Przykład wykresu kołowego JasperReport Przykład
- 19. Przykład faktoryzacji macierzy sklearn przykład
- 20. xcode 8 wartość typu "Błąd" nie ma członka 'userinfo'
- 21. Obserwator w NSNotification (itemDidFinishPlaying) RANDOMLY do dwukrotnego wywołania
- 22. Przykład transformacji Router v4 Animowany przykład
- 23. Przykład pysmb
- 24. przykład NSXMLParser
- 25. Przykład MultiSelectListPreference
- 26. WeakHashMap przykład
- 27. Przykład startMonitoringSignificantLocationChanges
- 28. Przykład implementacji Baum-Welcha
- 29. Przykład NSOutlineView i NSTreeController
- 30. MVVM Light Threading Przykład
w kakao, można użyć NSPointFromCGPoint, a następnie użyć NSValue za valueWithPoint a pointValue. –
Lub możesz zbudować z predefiniowanym NS_BUILD_32_LIKE_64, w którym to przypadku NSPoint jest typedef dla CGPoint (zawsze jest w kompilacjach 64-bitowych). –