私はObjective Cの初心者で、Jsonからデータを保存しようとしています。私はそれをうまくやった、私のプログラムは、インターネット上のJsonからデータを取り出して保存する。しかし、私シャットダウンアプリやインターネットせずに再起動し、それが代わりに負荷データの再度ダウンロードして保存しようとしたときに(私はデータが削除されていたと思います)Objective Cの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文 'に2つの条件を持っています。 2番目の条件が成立していない –