Итак, я ставлю NSDate
в Realm модели:Фильтр день от NSDate в Realm, Swift
class GeneralList: Object {
dynamic var createdAt = NSDate()
dynamic var notes = ""
}
Как получить, например, все 'отмечает' в 27.03.2016?
Итак, я ставлю NSDate
в Realm модели:Фильтр день от NSDate в Realm, Swift
class GeneralList: Object {
dynamic var createdAt = NSDate()
dynamic var notes = ""
}
Как получить, например, все 'отмечает' в 27.03.2016?
Итак, я нахожу простой способ:
создать общедоступное расширение для строки и создать функцию с отдельным 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
}
}
В классе 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")
В 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)
Я надеюсь, что это поможет кому-то ...
Вы можете реализовать эту функцию, из 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