Jestem nowy w rozwoju Objective-C i iPhone'a i próbuję przechowywać wartości zmiennoprzecinkowe w NSMutableArray, ale kiedy to robię, pojawia się komunikat "niekompatybilny" type dla argumentu 1 elementu "addObject". Co ja robię źle? Próbuję stworzyć tablicę podwójną, z którą mogę wykonywać obliczenia matematyczne.Jak utworzyć NSMutableArray wartości zmiennoprzecinkowych
Odpowiedz
NSMutableArray zawiera tylko obiekty, więc chcesz załadować tablicę obiektami NSNumber. Utwórz każdy numer NSN, aby zatrzymać swój plik podwójny, a następnie dodaj go do swojej tablicy. Być może coś takiego.
NSMutableArray *array = [[NSMutableArray alloc] init];
NSNumber *num = [NSNumber numberWithFloat:10.0f];
[array addObject:num];
Powtórz zgodnie z potrzebami.
Użyć NSNumber owinąć pływak, ponieważ słownik potrzebuje obiektu:
[myDictionary setObject:[NSNumber numberWithFloat:0.2f] forKey:@"theFloat"];
/* or */
[myDictionary setObject:@0.2f forKey:@"theFloat"];
odzyskać przesyłając floatValue:
float theFloat = [[myDictionary objectForKey:@"theFloat"] floatValue];
Code jest niesprawdzone.
Można zawijać wiele innych typów danych również w NSNumber, sprawdź documentation. Istnieje również NSValue dla niektórych struktur, takich jak NSPoint i NSRect.
W kakao NSMutableDictionary (i wszystkie kolekcje, naprawdę) wymagają obiektów jako wartości, więc nie można po prostu przekazać żadnego innego typu danych. Jak zasugerowali sjmulder i Ryan, możesz zawijać wartości skalarne w instancjach NSNumber (dla numeru) i NSValue dla innych obiektów.
Jeśli reprezentujesz liczbę dziesiętną, za coś podobnego do ceny, sugerowałbym również przeglądanie i używanie NSDecimalNumber. Możesz wtedy uniknąć problemów związanych z niedokładnością zmiennoprzecinkową i zazwyczaj możesz używać i przechowywać "wartość" jako NSDecimalNumber zamiast reprezentowania jej za pomocą kodu pierwotnego.
Na przykład:
// somewhere
NSDecimalNumber* price = [[NSDecimalNumber decimalNumberWithString:@"3.50"] retain];
NSMutableArray* prices= [[NSMutableArray array] retain];
// ...
[prices addObject:price];
NSMutableArray *muArray = [[NSMutableArray alloc] init];
NSNumber *float = [NSNumber numberWithFloat:210.0f];
NSNumber *float1 = [NSNumber numberWithFloat:211.0f];
[muArray addObject:float];
[muArray addObject:float1];
NSlog(@"my array is--%@",muArray);
Proszę wyjaśnij swoją odpowiedź – Gwenc37
- 1. Porównując wartości zmiennoprzecinkowych
- 2. Powtórzenie wszystkich możliwych wartości zmiennoprzecinkowych
- 3. Jak przechowywać wartości wyliczeniowe w NSMutableArray
- 4. Jak zaimplementować "grupa według wartości" w NSMutableArray?
- 5. Jak przechowywać wartości CGRect w NSMutableArray?
- 6. Jak zapisywać wartości NSTimeInterval w obiekcie NSMutableArray?
- 7. Sposób uzyskania specjalnych wartości zmiennoprzecinkowych w CUDA?
- 8. Dodawanie dwóch tablic wartości zmiennoprzecinkowych w Haskell
- 9. Porównywanie wartości zmiennoprzecinkowych/podwójnych za pomocą operatora ==
- 10. Jak utworzyć Static NSMutableArray w klasie w Objective c?
- 11. Jak utworzyć obiekt NSMutableArray i przypisać do niego określony obiekt?
- 12. Jak ograniczyć EditText do wprowadzania wyłącznie wartości zmiennoprzecinkowych w Javie?
- 13. jak dodać obiekt do NSMutableArray
- 14. Jak zaimplementować obserwowanie wartości kluczy w obiekcie NSMutableArray
- 15. OBJ-C: Uzyskiwanie wartości minimalnej/maksymalnej w obiekcie NSMutableArray
- 16. Jak dodać NSMutableArray do obiektu NSMutableArray Objective-c
- 17. Sortuj NSMutableArray z obiektami niestandardowymi za pomocą innego NSMutableArray
- 18. Jak zmiennoprzecinkowych przelewowy traktowane iostreams
- 19. Połącz jedną NSMutableArray z końcem innej NSMutableArray
- 20. Przechowywanie liczb zmiennoprzecinkowych w pliku
- 21. Przechowywanie dwóch wartości zmiennoprzecinkowych w jednej zmiennej zmiennoprzecinkowej
- 22. Kopiowanie NSMutableArray do innego
- 23. Resetowanie NSMutableArray
- 24. Jak przechowywać CGGradientRef w NSMutableArray
- 25. Jak przekonwertować NSArray do NSMutableArray
- 26. Jak przenieść element na NSMutableArray?
- 27. Jak przekonwertować NSMutableArray na NSString?
- 28. Jak sortować NSMutableArray obiektów daty
- 29. NSMutableArray addObject, nierozpoznany selektor
- 30. Definiowanie wartości zmiennoprzecinkowych według podstawy oraz wykładnik wyraźnie
Zastosowanie numberWithFloat jeśli nie trzeba precyzji. –