what tutorial pricing objective swift filter realm

tutorial - Filtrar por día desde NSDate in Realm, Swift



realm swift tutorial (2)

Entonces, encuentro la manera fácil:

  1. Cree una extensión pública para String y cree una función con NSDate por separado:

    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. En la clase Realm, crea una fecha separada:

    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. En ViewController llame al predicado

    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)

Espero que sea para ayudar a alguien ...

Entonces, pongo NSDate en el modelo de Realm:

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

¿Cómo obtener, por ejemplo, todas las ''notas'' en 27.03.2016?


Puedes implementar esta función, a partir de la respuesta de Rafael

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 }

Y luego utilícelo como un parámetro para la función de filter de Realm de esta manera:

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

Después de ejecutar este código, su GeneralList debe contener todas las GeneralList en 27.03.2016.