所以我是开发用的新手,让我成为一个菜鸟。 我目前正在创建我的第一个iPhone应用程序,其中我有一个与网络视频服务何时启动相关的倒计时。 在倒计时下我有一个允许播放视频流的按钮,我想创建一个if语句,告诉应用程序引用iPhone当前日期,如果它超过发布日期,那么iPhone将启动视频流,如果用户在发布日期之前按下按钮我希望UIAlert View显示服务启动的日期,到目前为止,我已经有了这个。
- (IBAction)watchLive {
self.today = [NSDate date];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
NSString *launchDay = [[NSString alloc] initWithString:@"11/26/2010 11:59:59"];
NSDate *currentDate = [dateformatter dateFromString:launchDay];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
int unitFlags = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:today toDate:currentDate options:0];
countdownLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d:%02d", components.day, components.hour, components.minute, components.second ];
if (today >= currentDate){
UIAlertView*alert = [[UIAlertView alloc] initWithTitle:@"Coming Soon" message:@"Feed goes live Friday 26th November 12:00pm" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
}
else {
UIAlertView*alert =[[UIAlertView alloc] initWithTitle:@"Perfect" message:@"It Works" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
}
}
我非常感谢任何帮助,因为我真的不确定自己的错误或应该采取的措施。
哦,是的,最后一件事,当我在模拟器和设备上运行应用程序时,它只是随机显示其中一条消息,我无法确定每条消息显示的原因,但不是日期!
谢谢你们! 菲尔
答案 0 :(得分:3)
比较日期时,您应该使用NSDate
的比较方法
您看到的行为是比较今天和currentDate
更改
if (today >= currentDate)
要
if ([today timeIntervalSinceDate:currentDate] <= 0 ) // today is before launch
有关详细信息,请参阅NSDate Class Reference