如何打印核心数据正确的数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何打印核心数据正确的数字?相关的知识,希望对你有一定的参考价值。

我设置了一个Array来保存Core Data中的数据。

  var users:[Users] = []

当我想从tableView中删除我的一个数据时,我设置了这个函数,如下所示:

func deleteData(username:IndexPath){
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        let context = appDelegate.persistentContainer.viewContext

        context.delete(users[username.row])
        print("test1")
        print(users[username.row])
        print(users)
        print(users.count)


        do {
            try context.save()
            print("test2")
            print(users[username.row])
            print(users)
            print(users.count)
        } catch  {
            print("Could'n save data")
        }
    }

我观察了这个操作,我在这里发现了一些问题:

在context.save()下面,我输入了print(用户),控制台显示了用户数据:

test2
<Users: 0x600000286770> (entity: Users; id: 0xd000000000e40000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p57> ; data: <fault>)
[<Users: 0x600000281ea0> (entity: Users; id: 0xd000000000c40000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p49> ; data: {
    username = test1;
}), <Users: 0x6000002823f0> (entity: Users; id: 0xd000000000c80000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p50> ; data: {
    username = test2;
}), <Users: 0x6000002823a0> (entity: Users; id: 0xd000000000cc0000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p51> ; data: {
    username = test3;
}), <Users: 0x600000282350> (entity: Users; id: 0xd000000000d00000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p52> ; data: {
    username = test4;
}), <Users: 0x600000282300> (entity: Users; id: 0xd000000000d40000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p53> ; data: {
    username = test5;
}), <Users: 0x600000286770> (entity: Users; id: 0xd000000000e40000 <x-coredata://2D4CEBDA-C1B2-4CEC-A734-B7C9579C12A5/Users/p57> ; data: <fault>)]
6

但我只有5个数据,而不是6.这个问题有什么问题?

答案

从Core Data中删除项目不会自动将其从数据源阵列中删除。您必须明确删除它:

context.delete(users[username.row])
users.remove(at: username.row)

以上是关于如何打印核心数据正确的数字?的主要内容,如果未能解决你的问题,请参考以下文章

手写数字识别——基于全连接层和MNIST数据集

如何正确使用熊猫打印前五行[重复]

如何使用数组打印 10 位大数字的反转?

如何正确地将多个片段添加到片段过渡?

为什么这个代码的答案在每个数字上打印3次,直到它是正确的?

如何将格式正确的表格打印到控制台?