【发布时间】:2016-06-26 08:17:27
【问题描述】:
所以,我将NSDate 放入Realm 模型中:
class GeneralList: Object {
dynamic var createdAt = NSDate()
dynamic var notes = ""
}
例如,如何获取 27.03.2016 中的所有“笔记”?
【问题讨论】:
所以,我将NSDate 放入Realm 模型中:
class GeneralList: Object {
dynamic var createdAt = NSDate()
dynamic var notes = ""
}
例如,如何获取 27.03.2016 中的所有“笔记”?
【问题讨论】:
所以,我找到了简单的方法:
为 String 创建公共扩展并使用单独的 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)
我希望它对某人有所帮助......
【讨论】:
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
}
然后将其用作 Realm 的 filter 函数的参数,如下所示:
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 应包含 27.03.2016 中的所有 GeneralList
【讨论】: