Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Arrays 向核心数据中添加项后,保存到核心数据中的数组为空_Arrays_Swift_Core Data - Fatal编程技术网

Arrays 向核心数据中添加项后,保存到核心数据中的数组为空

Arrays 向核心数据中添加项后,保存到核心数据中的数组为空,arrays,swift,core-data,Arrays,Swift,Core Data,我试图将一个数组保存到核心数据中,该数据是整数(作为用户的输入)。当我打印实体时,保存的数字正在打印,但数组没有打印。这是代码 @IBAction func logMood(_ sender: UIButton) { let delegate = UIApplication.shared.delegate as! AppDelegate let managedObjectContext = delegate.persistentContainer.viewContext let

我试图将一个数组保存到核心数据中,该数据是整数(作为用户的输入)。当我打印实体时,保存的数字正在打印,但数组没有打印。这是代码

@IBAction func logMood(_ sender: UIButton) {

let delegate = UIApplication.shared.delegate as! AppDelegate
    let managedObjectContext = delegate.persistentContainer.viewContext
    let num =  Numbers(context: managedObjectContext)
    num.numberInArray = Int16(numberEnteredInSlider)

    var dataArray : [[Int: Int]] {
        get { return (try? JSONDecoder().decode([[Int:Int]].self, from: 
    num.dataOfArray!)) ?? [] }
        set { num.dataOfArray = try! JSONEncoder().encode(num.numberInArray) }
    }
    do {
        try managedObjectContext.save()
        num.dataOfArray?.append(contentsOf: [UInt8(num.numberInArray)])
        print(num)
    } catch let error as NSError  {
        print("Could not save \(error), \(error.userInfo)")

    }
输出如下:

<Numbers:> (entity: Numbers; id:; data: {
    dataOfArray = nil;
    numberInArray = 3;
})
(实体:编号;id:;数据:{
dataOfArray=零;
numberInArray=3;
})

您不理解我在上一个问题中的建议。计算属性
dataArray
必须位于
Numbers
类中,以将
Int
数组映射到
数据,反之亦然,因为核心数据不直接支持数组。真正的数组类型是什么
[Int]
[[Int:Int]
?如果您有一个实体而不是一个属性
key:Int,value:Int
来存储数组的内容,这不是会容易得多吗?@vadian,很抱歉我没有得到它,我对iOS编程相当陌生,这是我的第一个个人项目。它是一个整数数组,将传递给另一个函数。我不确定
[Int:Int]
是如何工作的,我在堆栈溢出时复制了它。另外,我目前没有数字类,它是XCDataModel中的一个实体。
[[Int:Int]]
类型是您前面问题中的单例的一部分。实体是
Numbers
类。很不清楚你将要完成什么。对不起,我应该说得更清楚一些。大多数情况下,我试图制作一个整数数组
numberEnteredInSlider
,将该数组保存在CoreData中,并使用它制作图表。同时我也意识到我不应该使用singleton。请你给我一些建议,告诉我如何从这里开始?