gpt4 book ai didi

iphone - iOS:日期组件查询

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:20:11 24 4
gpt4 key购买 nike

我想知道如何将 dateComps setDay: 编辑为在选取器中设置的日期前 3 天关闭。我输入了 -3,但这似乎不起作用。任何帮助深表感谢!这是我的代码:

- (IBAction)scheduleNotifButton:(id)sender {
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];

NSDate *pickerDate = [self.datePicker date];

NSDateComponents *dateComponents = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit )
fromDate:pickerDate];
NSDateComponents *timeComponents = [calendar components:( NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit )
fromDate:pickerDate];

NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setDay:[dateComponents day]];
[dateComps setMonth:[dateComponents month]];
[dateComps setYear:[dateComponents year]];
[dateComps setHour:13];
[dateComps setMinute:30];
[dateComps setSecond:[timeComponents second]];
NSDate *itemDate = [calendar dateFromComponents:dateComps];

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
return;
localNotif.fireDate = itemDate;
localNotif.timeZone = [NSTimeZone defaultTimeZone];

localNotif.alertBody = @"Event is in 3 days!";
localNotif.alertAction = nil;

localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 0;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

}

最佳答案

当你说你输入了 -3 时,你的意思是你使用了这一行吗?

[dateComps setDay:[dateComponents day] - 3];

这实际上应该有效。

此外,您可以通过将当前年份设置为日期组件来告诉系统在下一年触发。您可以按照查找 pickerDate 的日期组件的方式查找当前年份。

之后可以设置本地通知的repeatIntervalNSYearCalendarUnit,这样每年都会触发。

关于iphone - iOS:日期组件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8966741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com