Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将Int16类型的整数保存到核心数据-Swift_Ios_Swift_Core Data_Integer - Fatal编程技术网

Ios 将Int16类型的整数保存到核心数据-Swift

Ios 将Int16类型的整数保存到核心数据-Swift,ios,swift,core-data,integer,Ios,Swift,Core Data,Integer,我有一个工作应用程序,可以将各种不同的数据点保存到核心数据。保存到字符串类型字段的每一项都只保存find(我随后将其取出并打印到屏幕上以证明这一点)。但是,整数字段(特别是Int16数据类型)有问题。下面试图保存“activityOrder”的代码行是否有什么特别的错误 我可以确认变量“newNumber”有一个值,实际上是1。“activityOwner”和“activityType”字段正确保存(同样,它们都是字符串类型字段) 下面是我用来检查里面是否有东西的代码: let orde

我有一个工作应用程序,可以将各种不同的数据点保存到核心数据。保存到字符串类型字段的每一项都只保存find(我随后将其取出并打印到屏幕上以证明这一点)。但是,整数字段(特别是Int16数据类型)有问题。下面试图保存“activityOrder”的代码行是否有什么特别的错误

我可以确认变量“newNumber”有一个值,实际上是1。“activityOwner”和“activityType”字段正确保存(同样,它们都是字符串类型字段)

下面是我用来检查里面是否有东西的代码:

    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。