Niedawno rozpoczął po kursie online na iPhone rozwoju z Uniwersytetu Stanforda w iTunes U.CS193P - Dodanie przycisku pływający punkt do kalkulatora iOS
Staram się robić zadania domowe teraz przez kilka pierwszych wykładów. Poszedłem za przykładem, w którym zbudowałem podstawowy kalkulator, ale teraz próbuję wykonać pierwsze zadanie i nie mogę go rozwiązać. Jest to następująco:
kalkulatora już współpracuje z liczb zmiennoprzecinkowych (np po naciśnięciu 3/4 = będzie pokazywać prawidłowo otrzymaną wartość 0,75), ale nie ma sposobu dla użytkownika wejść liczba zmiennoprzecinkowa. Napraw to. Zezwalaj tylko na wpisywanie liczb zgodnych z numerem zmiennym (np. "192.168.0.1" nie jest prawnym numerem zmiennoprzecinkowym).
Po pierwsze, nie jestem pewien, czy zmienny liczy się jako digitPressed
lub operationPressed
. Próbowałem nawet z nową metodą o nazwie floatingPointPressed
, ale to się nie udało. Czy ktoś mógłby na to wskazywać?
Kiedy zobaczyłem go jako digitPressed, próbowałem coś takiego:
if (hasFloatingPoint) {
NSRange range = [[display text] rangeOfString:@"."];
if (range.location == NSNotFound)
{
[display setText:[[display text] stringByAppendingFormat:digit]];
hasFloatingPoint = YES;
}
}
else {
[display setText:[[display text] stringByAppendingFormat:digit]];
}
Ale tęsknię kluczową koncepcję tutaj, myślę.
Próbowałem też innego rozwiązania, które mam, niestety, cofnięto już, więc nie mogę podać kodu, ale co się stało: Mogłem nacisnąć numer, powiedzmy 5
, a następnie zmiennoprzecinkowe i 3
, więc chciałbym kończy się na 5.3
. Następnie udało mi się "wyłączyć" zmiennoprzecinkowe dla pozostałej części wejścia. Ale myślę, że byłem trochę zbyt surowy: nie mogłem, na przykład, wstawić 5.3.2
, ale po naciśnięciu przycisku operacji (+
, itp.), nadal nie pozwolił mi nacisnąć przycisk zmiennoprzecinkowy. Chyba powinienem zresetować bool użyłem do tego?
Nie szukam tutaj całkowicie wypisanego rozwiązania, ale czy ktoś może być tak uprzejmy, aby podać kilka podstawowych porad, jak rozwiązać ten problem? Jakiś krok po kroku przegląd tego, co powinienem zrobić i pomyśleć, bez faktycznego dostarczania rozwiązania kodu.
Z góry dziękuję.
Okies, dziękuję. Sprawdzę to. Może być nieco zaawansowany, odkąd dopiero zaczynam, ale na pewno popatrzę! Dzięki. – cabaret
będziesz często używać formaterów. Poznanie ich teraz może wymagać trochę więcej pracy, ale jest to właściwy sposób robienia tego, co próbujesz zrobić. A jeśli masz napisany kod i to nie działa - wiesz, gdzie przyjść? – Abizern
Dzięki. Przyjąłem tę odpowiedź, ponieważ pomogło mi to lepiej zrozumieć problem niż kod, który napisałem metodą prób i błędów. Zajrzę do formaterów, kiedy przyzwyczaję się do kodu, to trochę mylące atm. – cabaret