按核心数据

时间:2015-09-14 14:32:54

标签: ios core-data

我的核心数据库中有一个实体,其中包含 startDate 字段,以及一个字段 everyX ,用于存储实体活动的频率(如果 everyX 为2,每两天就会激活一次。我想获取所有实体,其中 startDate 和当前日期之间的天数可由 everyX 分割。使用 everyX 的模数确定 startDate 和今天之间的天数是否可行,但我无法找到获取天数的方法

例如,应该提取这些:

startDate = 12.9.15
everyX = 2
today = 14.9.15

startDate = 10.9.15
everyX = 2
today = 14.9.15

不应提取这些内容:

startDate = 9.9.15
everyX = 2
today = 14.9.15

startDate = 10.9.15
everyX = 3
today = 14.9.15

NSPredicate确实支持自定义函数,但是从核心数据sqlite存储中获取时这些函数不起作用。所以我需要另一种方法来计算使用NSFetchRequest时两个日期之间的天数。

我知道可以在获取请求后使用代码过滤实体,但我想防止这种情况,因为我会失去我正在使用的NSFetchedResultsController的许多好处

1 个答案:

答案 0 :(得分:0)

您可以尝试获取数据并使用日期,例如:

var formatter:NSDateFormatter = NSDateFormatter()
    formatter.dateFormat = "DD"
var dayNumber1 = formatter.dateFromString(Your first Date)!
var dayNumber2 = formatter.dateFromString(Your second Date)!
var difference = dayNumber2 - dayNumber1

或者您应该将您的日期编号设置为CoreData中的另一个字段,然后您可以对该字段进行操作。