2016-03-11 3 views

ответ

0

Итак, я нахожу простой способ:

  1. создать общедоступное расширение для строки и создать функцию с отдельным 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. В классе Realm, создать отдельную дату:

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

Я надеюсь, что это поможет кому-то ...

1

Вы можете реализовать эту функцию, из Rafael «s answer

private func createMessageRealmModelFromIncomingMessage(incomingMessage: MessageRestModel) -> MessageRealmModel { 
    let messageRealmModel = MessageRealmModel() 

    messageRealmModel.id = incomingMessage.id! 
    messageRealmModel.messageType = "CHAT_MESSAGE" 
    messageRealmModel.value = (incomingMessage.content?.value)! 
    messageRealmModel.senderId = incomingMessage.senderId! 
    messageRealmModel.recipientId = incomingMessage.recipientId! 
    messageRealmModel.sendDate = incomingMessage.sendDate! 
    messageRealmModel.serverDeliveryDate = incomingMessage.serverDeliveryDate! 
    messageRealmModel.receiverDeliveryDate = NSDate().msFromEpoch() 

    return messageRealmModel 
} 

И затем использовать его в качестве параметра для filter функции Realm как это:

var c = NSDateComponents() 
c.year = 2016 
c.month = 3 
c.day = 27 

var date = NSCalendar(identifier: NSCalendarIdentifierGregorian)?.dateFromComponents(c) 

let generalListsInDay = realm.objects(GeneralList).filter(self.predicateForDayFromDate(day)) 

После выполнения этого кода вам следует generalListsInDay содержат все GeneralList в 27.03.2016

Смежные вопросы