gpt4 book ai didi

ios - 在核心数据中存储 NSDate (swift)

转载 作者:搜寻专家 更新时间:2023-11-01 07:32:43 25 4
gpt4 key购买 nike

我是 swift 的新手,我正在尝试理解它的一部分。我一直在开发一个需要存储日期的应用程序,但我就是想不通。

任何输入都会很棒。

存储日期的代码

var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext!
// Users = Entity in core data
var newuser = NSEntityDescription.insertNewObjectForEntityForName("Users",inManagedObjectContext: context) as! NSManagedObject
// datetostore = attribute of type date
newuser.setValue(NSDate(), forKey: "datetostore")
context.save(nil)

从 Core Data 获取存储数据的代码

var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext!
var request = NSFetchRequest(entityName: "Users")
var results: NSArray = context.executeFetchRequest(request, error: nil)!
var end: AnyObject = results[0]
var end2 = end as! NSObject
var end3 = end2 as! NSDate

请注意:我知道结尾并没有真正起作用,因为那是我出错的地方。

最佳答案

首先,您应该让 Xcode 生成 NSManagedObject 子类,这将允许更强的类型和更简洁的代码。它将生成一个类 User,其属性为 datetostore

我建议不要使用诸如 datetostore 之类的愚蠢名称。这明明是一个日期,而且很明显你在存储它。因此,date 就足够了。

最后,从您的代码来看,您似乎认为用户与日期相同,即使您自己刚刚调用 setValueForKey 将日期作为属性添加到用户。考虑一下,并遵循 Martin R 的建议。

没有 NSManagedObject 子类(不推荐):

 let aDate = user.valueForKey("date")

使用子类:获取具有正确类型的实体。

let result = context.executeFetchRequest(request, error:nil) as! [User]
// check for empty array, then
let user = result.first
let aDate = user.date

关于ios - 在核心数据中存储 NSDate (swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31545101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com