せでぃのブログ

ブログ初心者おいどんのどうでもいい愚痴やどうでもいい愚痴やどうでもいいマメ知識などを披露するチラシの裏です。

MinutesToMidnight2

日付け変更までの残り時間を出して、何がしたかったかというと、『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