1

Xcodeで次のコードを使用しています:

(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];
}  

そして、次のエラーが発生しています。どうすればこれを修正できますか?

エラー:バイナリへのオペランドが無効です-('int'と'id'があります)

4

2 に答える 2

1

あなたはこのように使用している必要があります:-

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [gregorian components:(NSHourCalendarUnit  | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:[NSDate date]];
NSInteger hour = [dateComponents hour];
NSInteger minute = [dateComponents minute];
NSInteger second = [dateComponents second];
[gregorian release];

お役に立てば幸いです

于 2013-01-08T11:58:20.563 に答える
0

このように使用する

NSDate* now = [NSDate date];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [gregorian components:(NSHourCalendarUnit  | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:now];
long hour =23-[dateComponents hour];
long min =59-[dateComponents minute];
long sec =59-[dateComponents second];

NSString *str = [NSString stringWithFormat:@"%02ld:%02ld:%02ld", hour, min,sec];
NSLog(@"--> %@",str);
于 2013-01-08T11:58:01.207 に答える