Ios 将Int16类型的整数保存到核心数据-Swift
我有一个工作应用程序,可以将各种不同的数据点保存到核心数据。保存到字符串类型字段的每一项都只保存find(我随后将其取出并打印到屏幕上以证明这一点)。但是,整数字段(特别是Int16数据类型)有问题。下面试图保存“activityOrder”的代码行是否有什么特别的错误 我可以确认变量“newNumber”有一个值,实际上是1。“activityOwner”和“activityType”字段正确保存(同样,它们都是字符串类型字段) 下面是我用来检查里面是否有东西的代码:Ios 将Int16类型的整数保存到核心数据-Swift,ios,swift,core-data,integer,Ios,Swift,Core Data,Integer,我有一个工作应用程序,可以将各种不同的数据点保存到核心数据。保存到字符串类型字段的每一项都只保存find(我随后将其取出并打印到屏幕上以证明这一点)。但是,整数字段(特别是Int16数据类型)有问题。下面试图保存“activityOrder”的代码行是否有什么特别的错误 我可以确认变量“newNumber”有一个值,实际上是1。“activityOwner”和“activityType”字段正确保存(同样,它们都是字符串类型字段) 下面是我用来检查里面是否有东西的代码: let orde
let orderFetchRequest: NSFetchRequest = NSFetchRequest(entityName: "Activities")
orderFetchRequest.returnsObjectsAsFaults = false
orderFetchRequest.fetchLimit = 1
do {
let orderResults = try appDelegate.managedObjectContext.executeFetchRequest(orderFetchRequest)
orderData = orderResults as! [NSManagedObject]
} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
let orderSortDescriptor = NSSortDescriptor(key: "activityOrder", ascending: true)
orderFetchRequest.sortDescriptors = [orderSortDescriptor]
print(orderData)
实际上,我打印了“orderData”,它打印了整个记录(在这里,我可以看到所有字符串数据的值,但订单的值为零)
我对核心数据和Swift相当陌生。保存到核心数据时,整数的行为是否与字符串不同?核心数据只能保存对象类型。所以,如果您想要dave Int类型,那么首先将其转换为NSNumber对象,然后保存到核心数据中
let newActivity = NSEntityDescription.insertNewObjectForEntityForName("Activities", inManagedObjectContext: context) as NSManagedObject
newActivity.setValue(selectedOwnerName, forKey: "activityOwner")
newActivity.setValue(selectedActivityType, forKey: "activityType")
newActivity.setValue(NSNumber(short: newNumber), forKey: "activityOrder")
核心数据只能保存对象类型。所以,如果您想要dave Int类型,那么首先将其转换为NSNumber对象,然后保存到核心数据中
let newActivity = NSEntityDescription.insertNewObjectForEntityForName("Activities", inManagedObjectContext: context) as NSManagedObject
newActivity.setValue(selectedOwnerName, forKey: "activityOwner")
newActivity.setValue(selectedActivityType, forKey: "activityType")
newActivity.setValue(NSNumber(short: newNumber), forKey: "activityOrder")
如何在托管对象中声明
newNumber
?我最初将其声明为var newNumber:Int,但我也尝试了“NSNumber”“Int16”和其他方法。能否包含用于获取数据并显示数据的代码?当然可以@Michael,查看我所做的编辑。您是否查看了数据库以查看它存储了什么?如何在托管对象中声明newNumber
?我最初将其声明为var newNumber:Int,但我也尝试了“NSNumber”“Int16”等。您是否可以包括用于获取数据并显示数据的代码?当然可以@Michael,查看我所做的编辑。您是否查看了数据库以查看它存储的内容?因此,即使添加了NSNumber转换,它在我获取结果时仍会生成nil。因此,即使添加了NSNumber转换,在我获取结果时仍会生成nil。