gpt4 book ai didi

ios - 有什么方法可以在 iOS 的 CoreData 中存储一周前的数据(比如 CMStepCounter(7 天数据)中的步行步数)?

转载 作者:行者123 更新时间:2023-11-28 21:33:35 25 4
gpt4 key购买 nike

我有这样的要求,我需要在核心数据中存储一周前的数据(NSDictionary/NSMUtableArray)

例如:今天的日期:15th_January_2016

我需要存储从 (14th_January_2016 到 8th_January_2016) 的数据。无需在 Core Data 中存储今天的数据

另一个例子喜欢:如果 16th_01_2016 ===> 意味着我需要存储从 15th_01_2016 到 9th_01_2016

的数据

如果有人知道解决方案/示例代码。

最佳答案

我建议您添加 creationDate属性到您的数据条目。当用户生成数据时,您可以将当前日期与用户数据一起保存。您可以时不时地(例如,在应用程序启动时,每天一次)检查超过一周的条目并将其删除。

首先,您需要一个一周前的引用日期。你应该能够像这样得到它:

NSCalendar       *calendar;
NSDateComponents *comps;
NSDate *oneWeekAgo;

calendar = [NSCalendar currentCalendar];
comps = [[NSDateComponents alloc] init];
[comps setDay:-8];

oneWeekAgo = [calendar
dateByAddingComponents:comps
toDate:[NSDate date]
options:0];
[comps release];

然后您需要获取所有具有较小 creationDate 的条目(比引用年龄大):

NSArray        *oldEntries;
NSFetchRequest *fetchRequest;
NSPredicate *predicate;

fetchRequest = [[NSFetchRequest alloc]
initWithEntityName:@"<your entry name>"];
predicate = [NSPredicate predicateWithFormat:
@"creationDate < %@", oneWeekAgo];
[fetchRequest setPredicate:predicate];
oldEntries = [moc executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];

然后您可以使用删除每个旧条目 [NSManagedObjectContext deleteObject:<the entry>] .

关于ios - 有什么方法可以在 iOS 的 CoreData 中存储一周前的数据(比如 CMStepCounter(7 天数据)中的步行步数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34807978/

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