Первый заказ: Soccer Links & Database
Автор: Vitkovsky 22.06.2009 01:58
Вот не успел я игрушку дописать, как появился заказ на программу.
Программа уже готова и скоро появится в AppStore, сколько будет стоить не могу сказать. Это дело заказчика.
Небольшая программа с двумя Tab Bar Controller, на одном список ссылок "Links" на футбольную тему по разделам. При нажатии на ссылку открывается сайт. Разбито все это на четыре "таба" по разделам.


На обратной стороне "Database". Примерно похож на "Links" только со списками историй футбола.


Программа обновляется с сайта, данные обновляются по необходимости. Так что программу в AppStore после чемпионатов обновлять не обязательно, достаточно будет обновить данные.

Ну и немного о программировании. Опишу те моменты, которы возникли при обновлении на OS 3.0. А так как заказщик попросил чтоб работало и на 2й версии, пришлось извратиться не много.
Первый момент в 3.0 не работает конструкция индикации в верхнем меню
//Для 2.х версий работало так
[UIApplication sharedApplication].isNetworkActivityIndicatorVisible = NO;
//Для 3.0 версии работает только через метод set
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
Второй момент связан с объектом "UITableViewCell". Вот на такую строчку ругнулся cell.text = [[tm objectAtIndex:indexPath.row] objectForKey:@"title"], что для объекта cell не работает метод SetText: и вообще что это устарелый метод. В итоге они в 3.0 версии добавили объект "UItextLabel" в класс "UITableViewCell", и код теперь должен выглядеть примерно так: "cell.textLabel.text = [[tm objectAtIndex:indexPath.row] objectForKey:@"title"];". Не спорю я, чтоб не заморачиваться, пошел по простому пути совместимости программы для 2.х версий 3.0 версии.
Ну собственно вот он:
В препроцессоре определяем процедуры
#ifdef __IPHONE_3_0
extern inline void settextcell(UITableViewCell *tableView, id value){
tableView.textLabel.text = value;
}
extern inline void setFontcell(UITableViewCell *tableView, NSInteger value){
tableView.textLabel.font = [UIFont systemFontOfSize:value];
}
#else
extern inline void settextcell(UITableViewCell *tableView, id value){
tableView.text = value;
}
extern inline void setFontcell(UITableViewCell *tableView, NSInteger value){
tableView.font = [UIFont systemFontOfSize:value];
}
#endif
И реализация
if (tp==1) {
settextcell(cell, [[listSec objectAtIndex:indexPath.row] objectForKey:@"title"]);
}else {
settextcell(cell, [NSString stringWithFormat:@"%@", [listSec objectAtIndex:indexPath.row]]);
if (!year1) {
setFontcell(cell, 14);
}
}
Ну и в приципе все. Если возникли вопросы - по возможности отвечу.
P.S. Так же скоро будет примерно такая же программа, что-то типа футбольного календаря. Будет готова - выложу, пока что нет данных для реализации.





Комментарии
где можно посмотреть список всех depricated методов для 3.0? Цитировать
Интерфейс через IB в осносном, кроме WebView
Цитата:Списка как такового не нашел в основном все на форумах и много чего методом "втыка" - например "#ifdef __IPHONE_3_0" Цитировать
а как регистрировалис ь в iPhone DP? сами или через посредников? много сложностей со всеми налоговыми формами? Цитировать
sale and cheap Louis Vuitton bags
sale and cheap Louis Vuitton purses
sale and cheap louis vuitton wallets Цитировать
RSS лента комментариев этой записи.