2016-02-13 63 views
1

我目前正在使用核心數據來存儲餐飲。我的實體是日期(日期),食物(字符串)和飲料(字符串)。現在我想提取過去七天儲存的所有食物。我將如何做到這一點?我知道我應該以某種方式使用NSPredicate,但我無法弄清楚究竟如何。從過去七天的核心數據中抽取實體

回答

2

獲取當前日曆

let calendar = NSCalendar.currentCalendar() 

從當前日期

let sevenDaysAgo = calendar.dateByAddingUnit(.Day, value: -7, toDate: now, options: [])! 

獲取當前日期

let now = NSDate() 

減7天獲得一天的開始7天前的

let startDate = calendar.startOfDayForDate(sevenDaysAgo) 

創建謂詞,文字date是核心數據屬性

let predicate = NSPredicate(format:"(date >= %@) AND (date < %@)", startDate, now) 
+0

非常感謝!但是我怎麼能在當時抽出一天(但仍然是七天的所有時間)呢?我想這樣做的原因是因爲我想在每天有多個存儲值的情況下獲取天數的平均值。或者也許有更好的方法來做到這一點? – Nils

+0

使用此謂詞執行提取請求將返回與條件匹配的所有對象的數組。添加一個排序描述符來獲得一個排序數組。然後枚舉數組。或者每天使用一個獲取請求。 – vadian

+0

這是過去的2天,對於單日減1,並保持在一個變量的值。然後在一個循環中,將變量作爲「結束日期」,再次減去一個,將其保存在變量中,並將新值作爲「開始日期」。 – vadian