日付け変更までの残り時間を出して、何がしたかったかというと、『Apps Amuck』というサイトにあるアプリを動かしたかったんだ。
iPhone用アプリを毎日作ってソースコードごと公開している『Apps Amuck』
アプリガンガン作っていきますんで! と意気込んでいたところ、verの違いのせいか、のっけからうまく行かなかったのw 責めて1個くらい動かそうと思った次第。
MinutesToMidnightViewController.mファイルで以下のエラー。
Invalid operands to binary expression(int and id)
instance method -dateWithCalendarFormat:timeZone not found
等々。構文が悪そう。
Updating User Interface Controls
該当のページにある「MinutesToMidnight.zip」を開いて、以下のメソッド部分を置き換えというか書き換えというか、すれば動いた。
MinutesToMidnightViewController.m
-(void)updateLabel { NSDate* now = [NSDate date]; /* int hour = 23 - [[now dateWithCalendarFormat:nil timeZone:nil] hourOfDay]; int min = 59 - [[now dateWithCalendarFormat:nil timeZone:nil] minuteOfHour]; int sec = 59 - [[now dateWithCalendarFormat:nil timeZone:nil] secondOfMinute]; countdownLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hour, min,sec]; */ // 計算のため、時分秒で分けて表示フォーマットを定義 NSDateFormatter *dtFormatterhour = [[NSDateFormatter alloc] init]; [dtFormatterhour setDateFormat:@"HH"]; NSDateFormatter *dtFormattermin = [[NSDateFormatter alloc] init]; [dtFormattermin setDateFormat:@"mm"]; NSDateFormatter *dtFormattersec = [[NSDateFormatter alloc] init]; [dtFormattersec setDateFormat:@"ss"]; // 現在日時を定義したフォーマットで取り込む // ここ通さないと、24とか59といった形にならない NSString *strHour = [dtFormatterhour stringFromDate:now]; NSString *strMin = [dtFormattermin stringFromDate:now]; NSString *strSec = [dtFormattersec stringFromDate:now]; //int型に変換 int hour, min, sec; hour = [strHour intValue]; min = [strMin intValue]; sec = [strSec intValue]; // 2桁ずつ表示 countdownLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", 23-hour, 59-min, 59-sec]; }
参考)
テキストであんまりやらなかったことーカレンダーー
既存のものを使わず、新規で作られている方もいます。
TECH LOG