我在我的应用中使用UIDatePicker
来选择没有日期的时间并将其值存储在CoreData
中。但是,如果我在代码中使用datePicked.date
(datePicked
为UIDatePicker
),则会存储日期值。我知道我可以使用NSDateFormatter
来存储HH:mm a
格式,但我不想在我的数据模型中存储字符串。即使我将dateFromString
函数存储为以所需格式存储时间,也会添加默认日期和时间。请告诉我如何只存储没有日期的时间。任何帮助将不胜感激。
答案 0 :(得分:1)
<强>更新强>
您可以在Core Data中保存可转换值。喜欢这堂课:
class Time: NSValueTransformer {
let hour: Int
let minute: Int
let second: Int
override init() { // only sample code
hour = 0
minute = 0
second = 0
}
override class func transformedValueClass() -> AnyClass {
return NSNumber.self
}
override func reverseTransformedValue(value: AnyObject?) -> AnyObject? {
guard let number = value as? NSNumber else {
return nil
}
return Time() // you should init Time from the number
}
override func transformedValue(value: AnyObject?) -> AnyObject? {
let number = hour * 60 * 60 + minute * 60 + second
return number
}
override class func allowsReverseTransformation() -> Bool {
return true
}
}
你应该像这样添加transformable属性: 你会在模型文件中得到这个:
extension Entity {
@NSManaged var time: Time? // modify it to Time manually
}
现在,您可以将Time
保存到托管对象。