NSDate在Realm,Swift中按日过滤 [英] Filter by day from NSDate in Realm, Swift

查看:189
本文介绍了NSDate在Realm,Swift中按日过滤的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,我把 NSDate 放在Realm模型中:

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

如何在27.03.2016获得所有'notes'?

解决方案

所以,我找到了简单的方法:
$ b


  1. 为String创建公共扩展,并使用单独的NSDate创建函数:

      public static func sepaDate(whatNeed:String) - >字符串{
    var currentDate = NSDate()
    让calendar = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)

    让dateComponents = calendar!.components([。Day,.Month,.Year ,.Minute,.Hour],fromDate:currentDate)
    var forReturn:String =0
    switch whatNeed {
    caseday:
    let value = String(dateComponents .day)
    forReturn =估值
    案例month:
    让valu = String(dateComponents.month)
    返回=估值
    案例year:
    let value = String(dateComponents.year)
    forReturn = value
    casehour:
    let value = String(dateComponents.hour)$ b $ forReturn = valu
    caseminute:
    let value = String(dateComponents.minute)
    forReturn = valu
    default:print(Error)
    }
    return forReturn


    code $ <$ $ $ $ $ $ $ $ $ $ $ $ <$>在Realm类中,cre吃了单独的日期:

      dynamic var minute = String.sepaDate(minute)
    dynamic var hour = String。分隔符(小时)
    动态var日= String.sepaDate(日)
    动态var月= String.sepaDate(月)
    动态var年= String.sepaDate year)


  2. 在ViewController中调用谓词

      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 )


我希望这有助于某人...

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 ?

解决方案

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...

这篇关于NSDate在Realm,Swift中按日过滤的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆