Szybkie pytanie - czy można rzucić NSInteger do obiektu NSNumber? Muszę przekonwertować znacznik obiektu UIImageView na obiekt NSNumber, ponieważ muszę przekazać go jako argument do funkcji.Czy można rzucić NSInteger do NSNumber?
Odpowiedz
Nie można obsadzić ponieważ to NSInteger
nie jest obiektem, po prostu alias dla typu wbudowanego. W każdej chwili można utworzyć nowy NSNumber
obiekt z NSInteger
, tak:
NSNumber *myNum = @(myNsIntValue);
lub wcześniejszej wersji kompilatora użyć
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
Ta odpowiedź generuje ostrzeżenie na nowych 64-bitowych urządzeniach. Zobacz dokładniejszą odpowiedź @ Kevina poniżej. –
@FullDecent Edytowane, dzięki! – dasblinkenlight
To jest bardziej poprawna odpowiedź i to nie przyniesie nieoczekiwane błąd.
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
Ponieważ dokument powiedział
„numberWithInteger. Tworzy i zwraca obiekt NSNumber zawierający określoną wartość, traktując je jako NSInteger”
"numberWithInt: Tworzy i zwraca obiekt NSNumber zawierający daną wartość, traktując go jako podpisaną int."
od Apple LLVM Compiler 4.0
istnieje łatwiejszy sposób tworzyć NSNumber
obiektu:
NSNumber *x = @1234;
NSNumber *y = @(anIntegerVariable);
NSNumber * z = @ (aDoubleValue); działa równie dobrze. – gnasher729
- 1. Jaka jest różnica między NSNumber i NSInteger?
- 2. Czy można rzucić java.lang.Error?
- 3. Czy można rzucić dowolne na opcjonalne?
- 4. Dołącz NSInteger do NSMutableData
- 5. C# nie można rzucić bool do int
- 6. Golang: Czy mogę rzucić do interfejsu chan {}
- 7. Sprawdź, czy NSNumber jest frakcją
- 8. Czy powinienem rzucić w moje lambda lub rzucić IEnumerable?
- 9. NSNumber z CGFloat
- 10. Przekazywanie zmiennej NSInteger do NSMutableDictionary lub NSMutableArray
- 11. [Ljava.lang.Object; nie można rzucić na [Ljava.util.ArrayList;
- 12. Czy istnieje jakaś różnica między "statyczną konstelacją NSInteger" i "statyczną const NSInteger"?
- 13. Jak uzyskać całkowitą sumę NSNumber z NSArray?
- 14. Konwertuj NSInteger na NSIndexpath
- 15. Konwertuj NSInteger na NSUInteger?
- 16. Konwertuj NSString na NSInteger?
- 17. NSNumber możliwy wyciek pamięci
- 18. Czy liczba przeskoków NSNumber dla licznika na poziomie instancji?
- 19. Sprawdzanie, czy wartość NSInteger jest nieparzysta, czy nawet
- 20. Swift: Konwertowanie NSNumber na NSString (NSNumber nie jest podtypem NSString)
- 21. Jak przekonwertować typedef enum na NSNumber?
- 22. Porównanie literałów NSNumber
- 23. jak przekonwertować NSinteger na ciąg
- 24. Konwersja na numer NSNumber
- 25. Czy mogę rzucić tablicę POD, która pływa do float *?
- 26. Czy istnieją NSDouble, NSFloat lub inne typy niż NSInteger?
- 27. Jak przekonwertować NSInteger na NSTimeInterval
- 28. Jak przekonwertować NSIndexPath na NSInteger?
- 29. Czy mogę dostosować istniejącą metodę viewWithTag: (NSInteger) dla stringTag?
- 30. Czy możemy rzucić typ w BigQuery?
to absolutnie możliwe rzutować NSInteger do NSNumber *. Wynik najprawdopodobniej doprowadzi do awarii. Oczywiście, jeśli masz liczbę x, możesz użyć @ (x), aby utworzyć obiekt NSNumber o wartości x. Który zadziała, ale nie jest obsadą. – gnasher729