gpt4 book ai didi

ios - 从 Objective C 中的 Json 保存数据的问题

转载 作者:行者123 更新时间:2023-11-29 12:03:05 25 4
gpt4 key购买 nike

我是 Objective C 的初学者,我尝试从 Json 中保存数据。我做得很好,我的程序从互联网上的 Json 中获取数据并保存。但是,当我关闭应用程序并在没有互联网的情况下再次启动它时,它会尝试再次下载并保存它而不是加载数据(我认为数据已被删除)

这是我的代码:

- (NSData *)saveAllScheduleData:(NSString *)endpointOfTheChannel {
NSData *channelData;

NSDateFormatter *dateFormatDuration = [[NSDateFormatter alloc] init];
[dateFormatDuration setDateFormat:@"HH:mm:ss"];
NSDate *duration = [dateFormatDuration dateFromString:@"23:59:59"];
NSDate *dateOfSave = [[NSUserDefaults standardUserDefaults] valueForKey:@"dateOfSave"];
NSCalendar *calendar = [NSCalendar currentCalendar];

NSDate *currentDate = [NSDate date];
[calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:currentDate];

NSDateComponents *comps = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:duration];
NSDate *nextSaveDate = [calendar dateByAddingComponents:comps toDate:dateOfSave options:0];

NSString *url = [NSString stringWithFormat:@"https://apis.is%@", endpointOfTheChannel];
if ([[NSUserDefaults standardUserDefaults] valueForKey: url] && [currentDate compare:nextSaveDate] == NSOrderedAscending) {
return channelData = [[NSUserDefaults standardUserDefaults] valueForKey: url];
} else {
channelData = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
[calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:dateOfSave];
[[NSUserDefaults standardUserDefaults] setObject:dateOfSave forKey:@"dateOfSave"];
[[NSUserDefaults standardUserDefaults] setObject:channelData forKey:url];
return channelData;
}
}

是的,我也尝试过每天重新加载数据,但目前由于那个错误,它没用。

感谢您的帮助。

最佳答案

您的if 语句 中有两个条件

可能是第二个条件不满足要求。 (正如您确认它不起作用。这就是答案)

其次,当您在 NSUserDefaults 中保存任何数据时,请使用适当的 Keys 进行存储。您正在使用变量 NSString *url 作为 Key。这可能会随时更改,您将无法从该 Key 访问 NSUserDefaults。它可以是常量 key,就像您用来保存 dateOfSave 一样。

希望你能明白。

关于ios - 从 Objective C 中的 Json 保存数据的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36126800/

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