Jestem początkujący z iPhone Dev w Objective C i jedno znajdę robię sporo jest coraz pływaków (i ints) iz różnych NSArraysCzy jest jakiś skrótowy sposób na uzyskanie float z tablicy?
float myFloatValue = [(NSNumber *)[myArray objectAtIndex:integerSelector] floatValue];
Rozumiem, że muszę zrobić to pole, ponieważ float (lub int) nie jest wskaźnikiem, a NSArray akceptuje tylko wskaźniki.
Zastanawiam się, czy jest trochę syntaktycznego cukru, aby skrócić tę linię kodu - głównie dlatego, że gdy mam kilka tablic i pętlę nad nimi, aby wykonać pewne przetwarzanie, stwierdzam, że linie zaczynają się staje się masywny i muszę przełamać linie, które wyodrębniają liczbę z tablicy tylko po to, aby kod był czytelny - wtedy mam dużo linii gumpha, które sprawiają, że logika jest trudniejsza do naśladowania.
w języku jak C# Chciałbym napisać coś
float myResult = myArray[i] + someOtherArray[i+1];
(OK - to chyba całkiem głupi wiersz kodu - ale składniowo to dość czyste, myślę, ponieważ .net robi boks niejawnie gdzie nie mogę go zobaczyć)
w obiektywnej CI znajduję się pisząc:
float myFloatValue = [(NSNumber *)[myArray objectAtIndex:i] floatValue];
float myOtherFloatValue = [(NSNumber *)[someOtherArray objectAtIndex:i+1] floatValue];
float myResult = myFloatValue + myOtherFloatValue;
Zastanawiam się tylko, czy jestem brakuje trick tutaj, wpisując to wszystko odręcznie. Czy powinienem używać alternatywy dla NSArray? Czy istnieje skrót do boksu/rozpakowywania?
Albo Chyba, należy po prostu do tego przyzwyczaić i przestać whinging;)
Nie, Objective-C jest do bani. Ale możesz użyć tablicy C, jeśli tylko przechowujesz zmienne. Problem z tablicami C to dynamiczna alokacja pamięci. – vakio
Cóż, przynajmniej dlaczego w ogóle rzucasz? To nie jest C++. Możesz wysłać dowolną wiadomość do obiektu 'id'. – StilesCrisis