:私は、前の月のイベントのために正しい結果を得る1か月以上経過したEKEventを取得するにはどうすればよいですか?このコードを使用
func sampleCase() {
var dateConstructor = DateComponents()
dateConstructor.year = 2016
dateConstructor.month = 12
dateConstructor.day = 15
let calendar: Calendar = Calendar.current
let workCalendar = CalendarUtilities.calendar("WorkSchedule", using: eventStore)
let referenceDate = calendar.date(from: dateConstructor)!
let startDate = referenceDate
let endDate = referenceDate.addingDays(1) // midnight
let range = DateRange(start: startDate, andEnd: endDate)
let predicate = eventStore.predicateForEvents(withStart: range.startDate, end:range.endDate, calendars:[workCalendar])
let events = eventStore.events(matching: predicate)
print("Found: \(events.count) events")
print("used:\(startDate)")
print("\(endDate)")
}
を...(これらの例は、イベントを持っていると、非ゼロ値を返す必要があります日付を使用しています。)
許可が...使用1つのイベント
::2016年12月15日5時00分00秒0000
2016年12月16日5時00分00秒0000
発見を与えられました
以前の結果は0イベントに戻ります。
eventStore.enumerateEvents(matching: predicate) { (result, stop) in
counter += 1
}
print("found \(counter) items using iterator")
使用:2016年11月11日午前5時00分00秒+0000
2016年11月12日午前5時00分00秒+0000
を発見私も同様の結果との列挙を使用してみましたイテレータを使用した0個のアイテム
2014などのイベントを取得できますか?私はカレンダーアプリ(macOSとiOS)を使うときにそれらを見る。
より大きな範囲が空になります(以前は4年分のデータを取得できていましたが、今は1ヶ月しか使用できないようです)ので、1日とカレンダーで私はその日のEKEventsを知っています。 – Mozahler
@Mozahler好奇心、私は述語で範囲制限を打つことを覚えている、と私は正直言ってそれは4年未満だったように感じる...しかし、私は現在6ヶ月の範囲(今日/ - 3ヶ月)、それはすべてを引き寄せます。あなたの述語はうまく形成されているように見えますが、違いはカレンダーを指定していないことだけです。私はあなたが店を作る場所を見ませんが、何らかの理由でそれが無ければ、それはとにかく些細なことでしょうか?興味深いもの: – ghostatron
私は4ヶ月前から2ヶ月前に質問し、100代の代わりに6名を得ました。おそらくそれは雲の問題ですか?私はストアにもクエリを行う別の方法を検討します。入力いただきありがとうございます! – Mozahler