Filter by day from NSDate in Realm, Swift

VladyslavPG

So, I put NSDate in Realm model:

class GeneralList: Object {
    dynamic var createdAt = NSDate()
    dynamic var notes = ""
}

How to get, for example, all 'notes' in 27.03.2016 ?

VladyslavPG

So, I find easy way:

  1. Create public extension for String and create function with separate NSDate:

     public static func sepaDate(whatNeed: String) -> String  {
     var currentDate = NSDate()
    let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
    
    let dateComponents = calendar!.components([.Day, .Month, .Year, .Minute, .Hour], fromDate: currentDate)
        var forReturn: String = "0"
        switch whatNeed {
            case "day":
                let valu = String(dateComponents.day)
                forReturn = valu
            case "month":
            let valu = String(dateComponents.month)
            forReturn = valu
            case "year":
            let valu = String(dateComponents.year)
            forReturn = valu
            case "hour":
            let valu = String(dateComponents.hour)
            forReturn = valu
            case "minute":
            let valu = String(dateComponents.minute)
            forReturn = valu
            default: print("Error")
        }
        return forReturn
    }
    }
    
  2. In Realm class, create separate date:

    dynamic var minute = String.sepaDate("minute")
    dynamic var hour = String.sepaDate("hour")
    dynamic var day = String.sepaDate("day")
    dynamic var month = String.sepaDate("month")
    dynamic var year = String.sepaDate("year") 
    
  3. In ViewController call to predicate

     let dayday = String(dateComponents.day)
             let monthmonth = String(dateComponents.month)
             let yearyear = String(dateComponents.year)
            let predicate = NSPredicate(format: "day = %@ AND month = %@ AND year = %@", dayday, monthmonth, yearyear)
            generalRecords = uiRealm.objects(GeneralList).filter(predicate) 
    

I hope it's help somebody...

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related