まず、すべての日付を保持するArray<NSDate>
を作成できます。 Dictionary<NSDate, Array<Event>>
を作成します。このディクショナリでは、イベントを対応する配列にグループ化できます。最後にセクションを取得するにはArray<NSDate>
を使用し、セクションではクエリキーを使用して対応するArray<Event>
を取得できます。
class Event: NSObject {
var date: NSDate?
}
var events: Array<Event> = Array()
for i in 1...100 {
let event: Event = Event()
event.date = NSDate.init(timeIntervalSinceNow: Double(i*86400/2))
events.append(event)
}
var dates: Array<NSDate> = Array()
dates.append(events.first!.date!)
for event in events {
var sameDay: Bool = false
for date in dates {
if NSCalendar.currentCalendar().isDate(date, inSameDayAsDate:event.date!) {
sameDay = true
break
}
}
if !sameDay {
dates.append(event.date!)
}
}
var grouped: Dictionary<NSDate, Array<Event>> = Dictionary()
for date in dates {
var dateEvents: Array<Event> = Array()
for event in events {
if NSCalendar.currentCalendar().isDate(event.date!, inSameDayAsDate: date) {
dateEvents.append(event)
}
}
grouped[date] = dateEvents
}
Thats works !!!しかし、次の日が上になるように日付を注文することは可能ですか? –
気にしないでください。私はすべてを並べ替える答えを見つけた...ありがとう! –