Контакты

Разработка приложений для iPhone

vzashibis@gmail.com

ICQ: 110609436

AppStore

Sport Calendar

На подходе в App Store еще одна программа "Sport Calendar"

Программа представляет собой спортивный календарь. В группе "Months" строки по месяцам. При переходе открывается список событий. С верху в строке указан период и вид спорта, в нижней строке - название. Далее открывается ссылка на сайт.

      

В группе "Sports" строки по видам спорта. Далее открывается список событий.

     

Данные формуруются из XML файла, которые можно обновить с сайта.

Программа предельно простая, опишу механизм обновления.

Правильным наверное было бы сделать через поток, но я в потоках еще не разбирался. И сделал проще, через таймер.

Определим таймер:

self.gTimer = [NSTimer scheduledTimerWithTimeInterval:timeInterval target:self selector:@selector(drawView) userInfo:nil repeats:YES];

И сама функция:

- (void)drawView {
    if (load==1) {
        [self reloadLinks];
    }else if (load==2) {
        [self reloadDatabase];
    }
}

 Функция обновления для "Months"

- (void) reloadLinks{
    buttonMore.title = @"Load Links...      ";
    @try {
        if (load==1) {
            [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
            [parseMonths parseXMLFileAtURL:MonthsURL];
            [parseMonths writeApplicationData:@"Months.xml"];
        }
        buttonMore.title = @"Ok...             ";
    }
    @catch (NSException * e) {
        NSLog ( @"Exception caught Links: %@", e);
        if (load==1) {
            [parseMonths parseXMLFile:@"Months"];
        }
    }
    @finally {
        load=2;
        [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
        buttonMore.title = @"Load Database...   ";
        if (!connect) {
            load=0;
            [indicator1 stopAnimating];
            [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
            buttonMore.title = @"Update Data";
            buttonMore.enabled = YES;
            buttonMore.style = UIBarButtonItemStyleBordered;
            buttonDone.enabled = YES;
            buttonDone.style = UIBarButtonItemStyleBordered;
            buttonDone.title = @"Done";
        }
    }
}

 Аналогичная функция и для модуля "Sports" только другой "URL", имя файла и через другой сласс

            [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
            [parseDataBase parseXMLFileAtURL:SportsURL];
            [parseDataBase writeApplicationData:@"Sports.xml"];

И все теперь для запуска обновления данных достаточно написать строку

load=1;

Если кому интересно глубже, пишите, постараюсь ответить.

Добавить комментарий

Защитный код
Обновить