我正在制作减肥应用程序,以节省您每天的体重。我需要知道如何保存当前日期的权重,然后在第二天使文本字段为空。我使用NSUserDefault保存了文本字段。我试图做其他健身应用程序有的UI,你可以去看看前几天看到保存的数据。有人能指出我正确的方向。谢谢!
override func didMoveToView(view: SKView) {
let stringKey = NSUserDefaults.standardUserDefaults()
textFieldWeight.text = stringKey.stringForKey("saveWeight")
addTextFieldForWeight()
}
func addTextFieldForWeight() {
textFieldWeight.borderStyle = UITextBorderStyle.Line
textFieldWeight.textColor = UIColor.whiteColor()
textFieldWeight.autocorrectionType = UITextAutocorrectionType.Yes
textFieldWeight.keyboardType = UIKeyboardType.NumberPad
textFieldWeight.delegate = self
textFieldWeight.backgroundColor = UIColor.clearColor()
textFieldWeight.returnKeyType = UIReturnKeyType.Done
textFieldWeight.contentVerticalAlignment = UIControlContentVerticalAlignment.Center
self.view?.addSubview(textFieldWeight)
}
override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
if node.name == "next" {
let nextDay = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.CalendarUnitDay,value: 1,toDate:
NSDate(),options: nil)
let formatter = NSDateFormatter()
formatter.dateStyle = NSDateFormatterStyle.FullStyle
let dateString = formatter.stringFromDate(nextDay!)
dateLabel.text = String(dateString)
}
if node.name == "before" {
let earlyDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.CalendarUnitDay,value: -1,toDate:
NSDate(),options: NSCalendarOptions.WrapComponents)
let formatter = NSDateFormatter()
formatter.dateStyle = NSDateFormatterStyle.FullStyle
let dateString = formatter.stringFromDate(earlyDate!)
dateLabel.text = String(dateString)
}
}
答案 0 :(得分:1)
您可能希望查看Core Data结构,或者为您可以归档的数据对象创建一个类。在这样的小盒子里解释很多,但在Apple的帮助文档中查找Core Data和Creating and Extracting Archives。
如果您想要一个更简单的解决方案,请尝试使用NSMutableArray,其中数组中的每个元素都可以是一个自定义对象,其中包含权重的NSDate和NSNumber对象。然后,您可以将此阵列保存到NSUserDefaults。但是,您的自定义对象必须是可归档的。