Swift 3 , Realm, Charts
A screen has a DatePicker and BarChart
I want to
1) Pick a date 2) Indexing my realm database 3) Drawing a bar-chart
there already had a realm database
for indexing precise I separate date to YYYY~mm
class ChartsDatas: Object {
dynamic var date: Date = Date()
let dateYYYYFormat = DateFormatter()
let dateMMFormat = DateFormatter()
let dateddFormat = DateFormatter()
let datehhFormat = DateFormatter()
let datemmFormat = DateFormatter()
dynamic var dateYYYY: String = "2000"
dynamic var dateMM: String = "01"
dynamic var datedd: String = "01"
dynamic var datehh: String = "00"
dynamic var datemm: String = "00"
dynamic var count: Double = Double(0.0)
func dateLongToShort(orgDate:Date!){
dateYYYYFormat.dateFormat = "YYYY"
dateYYYY = dateYYYYFormat.string(from: orgDate)
dateMMFormat.dateFormat = "MM"
dateMM = dateMMFormat.string(from: orgDate)
dateddFormat.dateFormat = "dd"
datedd = dateddFormat.string(from: orgDate)
datehhFormat.dateFormat = "hh"
datehh = datehhFormat.string(from: orgDate)
datemmFormat.dateFormat = "mm"
datemm = datemmFormat.string(from: orgDate)
}
and drawing (This method is drawing newest ten datas)
var dataEntries: [BarChartDataEntry] = []
let visitorCounts = getVisitorCountsFromDatabase() //read realm DB here
var xAxisCount = visitorCounts.count
if xAxisCount > 10{
xAxisCount = visitorCounts.count - 10
}
for i in xAxisCount..<visitorCounts.count {
let timeIntervalForDate: TimeInterval = visitorCounts[i].date.timeIntervalSince1970
let dataEntry = BarChartDataEntry(x: Double(timeIntervalForDate), y: Double(visitorCounts[i].count))
dataEntries.append(dataEntry)
}
How to modify to drawing ten datas according to my chosen date
Thanks
I'm not sure what's going on in getVisitorCountsFromDatabase()
but you can filter query results with predicate by specifying a date interval, see more in docs here: https://realm.io/docs/swift/latest/#filtering