XCode Tips&Tricks #3 – Come creare un piccolo cronometro

Eccoci con un nuovo appuntamento del “XCode Tips&Tricks“.

La richiesta è nata da un utente (di cui non ricordo il nome, se vuole lasciare un commento e dirmi come è finito il suo progetto mi farebbe piacere) che mi chiedeva aiuto per realizzare un semplice cronometro.

La struttura dell’applicazione è molto semplice, è composta da due bottoni: uno per avviare il conteggio del tempo e l’altro per fermarlo:

Schermata 2009-10-16 a 12.43.19

Ovviamente potreste avere un solo pulsante, non cambia nulla!

I due metodi associati alla pressione dei bottoni sono i seguenti:

Come potete vedere si tratta in sostanza di due istruzioni. La prima (alla riga 2) istanzia un’oggetto della classe NSDate, che ci restituisce la data e l’ora corrente in cui viene istanziato l’oggetto. L’istruzione alla riga 7, infine, calcola il numero di millisecondi passati dall’avvio del conteggio (potete esprimere tale numero anche in secondi, basterà rimuovere il “* -1000” alla fine dell’istruzione).

Schermata 2009-10-16 a 13.19.26

Spero possa tornare utile a qualcuno questo esempio. Alla prossima!

Andrea Busi | @bubidevs

Laureato in Ingegneria Informatica, ho fondato nel 2008 questo piccolo blog, in cui racconto le mie esperienze e i miei pensieri sul mondo dell'informatica. Nella vita mi occupo di sviluppo software, e nel tempo libero continuo a coltivare la mia passione per il mondo iOS.

ommenti a “XCode Tips&Tricks #3 – Come creare un piccolo cronometro

  1. Roberto ha detto:

    Ciao Andrea,
    sono il ragazzo che ti aveva chiesto aiuto per realizzare il cronometro! Ci tenevo davvero a ringraziarti per il tuo aiuto e anche per questa guida! Ultimamente sono stato molto impegnato, però sono riuscito a finire la prima parte del mio progetto, proprio grazie ai tuoi preziosi aiuti. Quello che mi rimane è usare i valori cronometrati per eseguire operazioni algebriche.
    Ti rinnovo i miei complimenti per questo sito e per le migliorie apportate!

  2. Andrea Busi ha detto:

    @Roberto: ti capisco, anche io faccio ingegneria e il tempo libero è davvero poco!!
    poveri noi futuri ingegneri!! XD

    comunque quando avrai finito l’applicazione faccelo sapere! 😉

  3. Marco ha detto:

    Ciao. Visto che QUI si fanno software, lancio questa idea/richiesta: il cronometro originale dell iphone fa anche da lap counter. Mi servirebbe potergli dare il segnale di LAP tramite un contatto esterno meccanico (comando a pedale). Oppure Ho pensato ad un comando vocale…….. Mi serve perche faccio radiomodellismo e le mani sono impegnate durante la guida.!!! E’ fattibile? Grazie

  4. Andrea Busi ha detto:

    @Marco: ciao! l’idea non è male, bisognerebbe trovare qualcuno disposto a svilupparla..
    sicuramente l’opzione più fattibile sarebbe quella a comando vocale, dovrebbe anche essere la più semplice da realizzare..

    se trovo qualcuno a cui interessa l’idea ti farò sapere! 😉

  5. Furios ha detto:

    E se volessi far vedere il cronometro nella view? E non solo nella console, grazie in anticipo 😀

  6. Andrea Busi ha detto:

    @Furios: inserisci una label tramite IB e la colleghi con un elemento dichiarato nella classe.. poi ti basterà fare:

    label.text = [NSString stringWithFormat:@”%f”,noSeconds];

    Così dovrebbe funzionare 😉

  7. Alberto ha detto:

    /Cronometro/Classes/CronometroViewController.m:16:0 /Cronometro/Classes/CronometroViewController.m:16: error: request for member ‘startDate’ in something not a structure or union

    ..volevo segnalarvi che il codice mi dà questo errore, mi sfugge qualcosa?

  8. Andrea Busi ha detto:

    @Alberto: hai dichiarato una variabile di tipo NSDate e con il nome di startDate?

  9. Alberto ha detto:

    Continuo ad avere problemi anche dichiarando quella variabile, se lo faccio mi dice di non trovare i metodi! Boh.
    /Cronometro/Classes/CronometroViewController.m:75:0 /Cronometro/Classes/CronometroViewController.m:75: warning: incomplete implementation of class ‘CronometroViewController’
    method definition for ‘-fermaTimer:’ not found
    method definition for ‘-avviaTimer:’ not found

    Se riesci mi posti l’header .h?

  10. Andrea Busi ha detto:

    @Alberto: se riesci mandami il tuo progetto a bubidevs at gmail.com così vedo di cercare l’errore 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*