пятница, 11 июня 2010 г.

Пишем себе часики для iPhone Часть 1. Основа всех часов

Основой всех часов является повторение определенного действия через заданное время. Итак, какой главный принцип работы наших часов? Правильно, это метод NSTimer который запускает таймер.


NSTimer *myTicker = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];

Функция showActivity запускает проверку времени. У меня в часах есть возможность отображать секунды (по умолчании этот режим выключен). При каждом вызове функции showActivity мы обновляем переменную секунд, добавляя к ней 1. Далее проверяем секунды и если секунды равны 60 то обнуляем переменную и запускаем функцию смены минут.

Обратите внимание на параметр repeats:YES который указывает, что функцию showActivity нужно запускать повторно.

Параметр scheduledTimerWithTimeInterval:1.0 задает время через которое фунцкия будет запускаться заново.

Если вы захотите остановиь наш таймер, то нужно вызвать метод [myTicker invalidate]

Пишем себе часики. Часть 0

Раз я вам обещал, значит сделаю :) Ну что же, будем писать себе часики? 

Я не буду здесь писать весь код программы, его получилось немного дофига :) Выложу просто архив с проектом. Каждый желающий может его скачать и скомпилировать для себя. 
Буду постепенно описывать основные принципы и алгоритмы работы. Если у кого-то возникнут вопросы, задавайте их в комментариях или же мне в твиттер/джаббер/почту.

Изначально, было задумано описывать все шаги создания программы, но я как-то упустил этот момент. Вот только увлекаюсь какой-то идеей и забываю обо всем на свете. Опомнился когда уже было поздновато. Поэтому буду описывать функции - какая за что отвечает и что делает. А вы смотрите код и все поймете. 

Код, конечно, выглядит ужасно. Сейчас я бы многое сделал по другому. Вы сильно не пугайтесь :)

Ну вот и ссылка на сам архив проекта iDharmaClock

А вот еще создал репозиторий в гугл.код и если буду что-то обновлять то там будут все обновления: https://code.google.com/p/idharmaclock/