我有这样的要求,我需要在核心数据中存储一周前的数据(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/