首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我在SwiftUI中重新打开应用程序时,为什么CoreData没有保存?

在SwiftUI中重新打开应用程序时,CoreData没有保存的原因可能是由于以下几个因素:

  1. 数据未正确保存:在重新打开应用程序时,可能没有正确调用CoreData的保存方法,导致数据没有被持久化到存储介质中。在SwiftUI中,可以在SceneDelegatesceneWillResignActive方法中调用persistentContainer.save()来保存数据。
  2. 数据模型更改:如果在重新打开应用程序之前进行了数据模型的更改,例如添加、删除或修改了实体或属性,那么CoreData可能无法正确加载旧的数据模型。这时可以尝试进行数据模型迁移,以确保旧数据的兼容性。
  3. 数据存储位置更改:如果在重新打开应用程序时,数据存储位置发生了变化,例如从本地存储切换到云存储,或者更改了存储路径,那么CoreData可能无法正确加载数据。在这种情况下,需要确保重新打开应用程序时指定了正确的存储位置。
  4. 数据加载时机:在SwiftUI中,数据加载通常是在视图的初始化方法中进行的。如果重新打开应用程序时,数据加载的时机不正确,可能导致CoreData没有正确加载数据。可以尝试在合适的生命周期方法或视图修饰符中加载数据,例如在onAppear中进行数据加载。

总结起来,要确保在SwiftUI中重新打开应用程序时,CoreData能够正确保存数据,需要注意调用保存方法、处理数据模型更改、检查数据存储位置和合理安排数据加载时机。如果以上方法仍然无法解决问题,可能需要进一步检查代码逻辑和调试。

相关搜索:当我调用setState时,为什么应用程序没有重新构建?在应用程序打开时动态显示单词中的字母- SwiftUI当我在我的vue应用程序的url中更改:id参数时,为什么当我按enter时页面不能重新加载?当我点击Submit按钮时,为什么值没有存储在表中?当我在react中更改范围滑块时,为什么整个页面都在重新渲染?当网站被重新打开时,有没有办法在浏览器中重新加载在iOS中如何在应用程序处于后台状态时重新打开应用程序?当我在db中插入数据时,它没有按顺序插入,为什么?当我重新打开它时,它没有存储Label5和TextBox1的值。在TextBox1中,我想在重新打开后显示零值为什么每当我在wpf应用程序中打开sqlite连接时,都会创建一个空文件?当我将其保存在矩阵中时,为什么在我的结果中出现NA?为什么当我从登录返回时,我在示例应用程序中遇到错误?当我在WinForm应用程序中打开窗体时,Wpf进度栏不工作吗?关闭并重新打开应用程序保存在共享首选项中的数据时不显示吗?当我在已用函数中更改间隔时,为什么C#计时器重新启动在更改页面时在Reactjs中重新加载应用程序会移除所有保存的状态吗为什么在C中重新定义结构体时,没有出现GCC的警告?当我在React中向输入标记写入文本时,为什么我的文本没有更改为什么在Python中运行其他窗口(GUI)时没有打开其他窗口(GUI)?在本地保存List<Widget>的最佳方法是什么,以便在应用程序重新打开时可以再次读取它?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Ask Apple 2022 与 Core Data 有关的问答

例如,FetchedResultsController 是否有对应的 SwiftUI 版本?A: SwiftUI 中使用 CoreData 没有问题。...我的设置,存储被保存到一个应用程序组目录,以允许从应用程序和扩展程序访问,所以我认为每个进程都将利用各自的容器来访问它。...但是,没有给出明确的提示关于如何在不影响 CloudKit 正确性的情况下以安全的方式清除历史。给出的示例是删除所有超过 7 天的事务。但是,为什么是 7 天?为什么不是 14 天?...是否有必要同步中间数据Q:当我使用 Core Data with CloudKit ,快速保存数千个 GPS 位置的最佳方法是什么?当数据很多时,它会达到服务器极限。冗长的讨论。...用例是:当我打开 Focus 过滤器,我将 @AppStorage 值更改为用户希望我的应用程序中看到的标签列表。

2.8K20

如何在Xcode下预览含有Core Data元素的SwiftUI视图

预览含有Core Data元素的视图崩溃的出现次数会愈发频繁,某种程度上可能已经影响了开发者SwiftUI中使用Core Data的热情。...•模拟器设备管理器删除模拟器再重新添加 上述的手段,多数也都适用于修复某些情况下的预览崩溃。...为了便于预览重复使用,我们可以CoreDataStack或其他你认为合适的地方提前创建好用于预览的数据,预览直接调用即可。...我目前开发使用SwiftUI+CoreData应用程序时,将CoreData部分的开发同应用程序的UI构建是完全分离的。...不过由于Bundle是只读的,你动态预览修改创建的数据并不会被真正的持久化。如果确有持久化的需要,可以使用下面的方案。将Bundle的数据库文件保存到Catch目录

5.1K10
  • Ask Apple 2022 与 Core Data 有关的问答 (下)

    主程序与扩展程序数据同步Q:我有一个主应用程序和一个扩展程序,它们都读取相同的 Core Data 数据库。但是,当我应用程序中进行更改时,我的扩展程序重新启动之前不会看到更改。...应用程序中一次性加载 CoreData 数据并将其保存在局部变量中使用多个 FetchRequests我目前 SwiftUI 中使用 UICalendarView 并从 CoreData 获取数据...当现有用户打开应用程序时,如何确保现有的本地 @AppStorage 数据被安全地转换到 Core Data + CloudKit ?...不过新版的 Xcode( 至少从版本 13 起 ),两者之间已经没有区别了。都会生成两个文件,而且如果用户类的定义添加了自定义属性,Xcode 也不会在重新生成的代码对其进行覆盖。...数据手动排序Q:我的应用程序,用户可以表视图中通过拖放来重新排列项目。

    3.2K20

    Core Data 基础

    问题描述: 使用xcode8.3创建项目,使用CoreData 建立好coreData模型后,生成文件后。报如下错误。提示没有引入文件。 查阅资料&综合调试,无法从正面解决问题。...用同事的电脑操作没有相关问题) 解决方案: 1.使用xcode7.1创建项目,生成CoreData模型以及文件后,再使用Xcode8.3打开项目,编译通过。...(1)tableview代理方法内实现修改数据 (2) viewDidLoad方法 设置代理 第 7 步:删除 获取要删除的 实体描述 让管理上下文删除对象 —— 从内存删除 保存对数据的操作...用同事的电脑操作没有相关问题) 解决方案: 1.使用xcode7.1创建项目,生成CoreData模型以及文件后,再使用Xcode8.3打开项目,编译通过。...(1)tableview代理方法内实现修改数据 (2) viewDidLoad方法 设置代理 第 7 步:删除 获取要删除的 实体描述 让管理上下文删除对象 —— 从内存删除 保存对数据的操作

    98830

    Swift 周报 第十八期

    虽然没有收购曼联的计划,但苹果一直推动体育内容的发展。...讨论无法使用 protocol 重新创建的类 - 扩展存储属性[10]简短的回答是“ protocol 不能定义存储的属性”。...讨论状态初始化器的 UUID[11] 讨论对于金融计算用 Decimal 还是 Double[12] 推荐博文 SwiftUI 开发灵动岛[13] 摘要: 本文将详细介绍使用 WidgetKit...使用此框架我们可以锁定屏幕或者灵动岛上显示实时活动。 话题讨论 世界杯你赚钱了吗? 14 亿人为什么选不出一支十多人的优秀团队?到底是哪里出了问题?元芳,你怎么看?国足⚽️的未来在哪里?.../t/difference-between-rawrepresentable-string-and-losslessstringconvertible/61600 [10]无法使用 protocol 重新创建的类

    2K20

    Core Data with CloudKit (一) —— 基础

    CloudKit是数据库、文件存储、用户认证系统的集合服务,提供了应用程序和iCloud容器之间的移动数据接口。用户可以多个设备上访问保存在iCloud上的数据。...公共数据库中保存的数据可以被任何授权过的应用程序调用,即使app的使用者没有登录iCloud账户,应用程序仍然可以读取其中的内容。...因此,当我保存数据到CloudKit数据库,不仅需要指明数据库(私有、公有、共享)类型,同时也需要标明具体的zoneID(当保存到_defaultZone无需标记)。...这就是当我Xcode Target的Signing&Capabilities添加上CloudKit功能,会Xcode自动添加Remote Notification的原因。...两年多的使用,我便碰到不少问题。借着今年打算在【健康笔记3】[6]实现共享数据库功能的机会,我最近较系统地重新学习了Core Data with CloudKit并对其知识点进行了梳理。

    98430

    Core Data with CloudKit (六) —— 共享数据

    尽管苹果提供了不少新的API来简化该操作,但想完整的应用程序实现该功能仍具有不小的挑战。...SwiftUI下,用于尚未生成CKShare情况的构造方法使用UIViewControllerRepresentable包装异常,因此,推荐SwiftUI下首先使用代码(share)手动为托管对象生成...项目设置 info.plist info.plist添加CKSharingSupported,为应用程序添加打开共享链接的能力。Xcode 13可以直接在info添加。...已知问题 1.共享,如设置成任何人可接收,参与者将无法获取到共享前托管对象的关系数据,且只有共享的托管对象修改后(或添加新的关系数据后)才会在参与者的应用程序显示。...2.共享,如设置成任何人可接收,尽量不要直接在UICloudSharingController通过信息、邮件等方式发送到另一个有效的iCloud账户上,否则大概率无法打开该共享链接,会显示共享已取消

    1.3K20

    Ask Apple 2022 与 SwiftUI 有关的问答(上)

    另外,按照这种方法,@FocusState 变量会变得没有反应,而且它不能被设置为 nil( 返回到以前的视图并没有移除键盘 )。是否可以SwiftUI 完成( 不使用 UIKit )?...onAppear、init、viewDidLoadQ:我的应用程序,我 UIHostingController 托管了 SwiftUI 视图,这些视图都处于一个 UITabBarController...但是从一个文本字段到下一个文本字段的聚焦感觉不够流畅,而且每当我一个文本字段输入一个字母,我的 CPU 使用率似乎会飙升到 70% — 100%。...目前我的做法是一个单例中保存对子上下文和托管对象的引用,然后用一个 URL 打开一个新窗口,这个 URL 单例检查上下文和托管对象。如果我们能用自定义参数启动新窗口,那就更好了。.../init(for:content: "WindowGroup 上引入了新的 API")),可以让你在打开窗口向其传递数据。

    12.2K20

    如何结合 Core Data 和 SwiftUI

    设置核心数据需要两个步骤:创建所谓的持久性容器(从容器存储中加载并保存实际数据),然后将其注入 SwiftUI 环境,以便我们所有的视图都可以访问它。 Xcode 模板已经为我们完成了这两个步骤。...如果我们对 Core Data 说“这不是必须的”(您可以模型编辑器完成),它仍然会生成可选的 Swift 属性,因为所有 Core Data 关心的是属性保存具有值——在其他时间它们可以为 nil...当我们定义 “Student” 实体,实际上发生的是 Core Data 为我们创建了一个类,该类继承自其自身的一个类:NSManagedObject。...我们无法代码中看到该类,因为它是构建项目自动生成的,就像 Core ML 的模型一样。...更好的是,如果您重新启动该应用程序,您会发现学生还在,因为 Core Data 已保存了他们。

    11.8K30

    掌握 Core Data Stack

    数据模型编辑器将定义的结果保存成 XML 格式的文件,Xcode 会在编译项目将该文件编译成尾缀为 momd 的二进制文件并放置 Bundle 创建 NSManagedObjectModel...该 API 极大地降低了系统 Spotlight 上维护应用程序的 Core Data 数据的难度。...为 Core Data Stack 创建多个配置模式 为什么要创建多个配置 如今创建一个 Core Data Stack 除了需要保证程序的正常运行功能所需外,最好同时为 Unit Test,SwiftUI...开发的 健康笔记 3[6] 里,我需要让内存模式同非内存模式共存,也就是特定的情况下,应用程序同时会存在两个使用同样托管对象模型的 Container,并可随时切换。...Core Data with CloudKit 的应用,我们无需每次代码调试都启用网络同步功能。

    85930

    Ask Apple 2022 与 SwiftUI 有关的问答(下)

    更复杂的 UI ,由于视图的更新速度过快,性能( 至少 macOS 上 )迅速下降。A:有不同的策略。ObservableObject 是使视图或视图层次结构的失效( 引发重新计算 )的单元。...快速检索数组元素Q:为什么没有简单的方法将 TABLE 选择的行映射到提供表内容的数组元素上?似乎唯一的方法是在数组搜索匹配的 id 值,这对于大表来说似乎效率很低。...但是,此转换仅在文本字段完成编辑才会发生,并且不会阻止输入非数字字符。目前 SwiftUI 没有 API 可以限制用户字段输入的字符。...动画转场Q:为什么下面的代码没有显示动画转场。...macOS APIQ:对于运行 Monterey 的 Mac,能否如何在 SwiftUI 实现下面需求的建议:打开一个窗口该窗口中初始化数据找到所有打开的窗口确定一个窗口是否打开从不在该窗口的视图中关闭一个窗口

    14.8K30

    SwiftUI 与 Core Data —— 安全地响应数据

    例如,当你创建一个带有字符串属性的新对象,初始值( 没有默认值的情况下 )是 nil,这在对象被验证之前( 通常在 save )是没有问题的。...可能开发者会有这样的疑问,假如某个实体的属性模型中被定义为可选,且托管对象的类型声明也为可选值类型( 例如上方的 timestamp 属性 ),那么如果在可以保证 save 一定有值的情况下,是否可以使用中使用..., formatter: itemFormatter) }}coreData-optional-demo1_2022-12-12_11.16.51.2022-12-12 11_18_34完全没有问题...并没有出现崩溃的情况。难道我们上面的论述都是错误的?由于 Core Data 模版代码,只使用了一行代码来声明次级视图:Text("Item at \(item.timestamp!....now) } }}coreData-optional-demo4_2022-12-12_14.20.17.2022-12-12 14_21_06视图之外传递值类型在上节的代码

    3.3K20

    AttributedString——不仅仅让文字更漂亮

    // 设置属性——超链接 image-20211007165456612 WWDC 2021之前,SwiftUI没有提供对属性字符串的支持,如果我们希望显示具有丰富样式的文本,通常会采用以下三种方式...swiftUI、uiKit和appKit三个scope存在很多的同名属性(比如foregroundColor),访问需注意以下几点: •当Xcode无法正确推断该适用哪个Scope的属性,请显式标明对应的...定义,都已经分别包含了foundation和accessibility。...因此转换即使只指定单一框架,foundation和accessibility的属性也均可正常转换。我们自定义Scope,最好也遵守该原则。 let nsString = try!...^[text](属性名称:属性值)来标记自定义属性 调用 // Markdown文本解析自定义属性,需指明Scope。

    3.9K40

    AnyView 对 SwiftUI 性能的影响

    当使用 FPS 作为度量标准时,重要的是指定最大帧速率(在这种情况下为 60),并在应用程序没有活动丢弃值。浏览数据首先,让我们看看在浏览内容不同的实现会表现如何。...没有 AnyView没有 AnyView 包装器的情况下进行测试产生了与常规滚动测试相似的结果(58-59 FPS)。这也是预期的,因为 SwiftUI 知道视图的标识和结构。...当需要更新视图,仅对其进行更改(例如,向视图添加另一个反应)。有 AnyView当我们在这种情况下使用 AnyView ,事情就变得有趣了 - 短时间内对屏幕上的视图进行频繁更新。...在此场景,有几个可见的卡顿和挂起,当我们频繁响应消息,FPS 降至 50 以下。由于几秒钟内强制重绘视图多次,帧丢失在这里更加明显。...这意味着,当列表发生更改时,我们实际上重新创建了整个列表。这也解释了为什么 AnyView 实现随着时间的推移变慢 - 每次重绘都需要从头开始创建更多内容。

    11900

    iOS常用的数据存储方式

    coredate上下文 7.5、添加数据 7.6、查询数据 7.7、删除数据 7.8、打开coredata的sql日志输出 开关 7.9、coredata 的延迟加载 7.10、NSManagedObject...iTunes同步设备不会备份该目录 4、Library/Caches: 保存应用运行时生成的需要持久化的数据,iTunes同步设备不会备份该目录。...NSUserDefaults设置数据的时候,不是立即写入,而是根据时间戳定时地把缓存的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程序就终止了。...Keychain的特点如下: 1、保存在Keychain的数据,即使应用程序被卸载,数据仍然存在;重新安装应用程序,我们也可以从Keychain读取这些数据。...2、Keychain的数据可以通过Group的方式实现应用程序之间共享,只要应用程序具有相同的TeamID即可。 3、保存在Keychain的数据都是经过加密的,因此非常安全。

    1.9K20

    SwiftUI属性包装器如何处理结构体

    已经了解了 SwiftUI 如何通过使用 @State 属性包装器将变化的数据存储结构体,如何使用 $ 将状态绑定到UI控件的值,以及更改 @state 包装的属性是如何自动让 SwiftUI 重新调用我们的结构体的...也许我们想将其保存到 UserDefaults ,运行一个方法,或者只是打印出该值以进行调试。...这意味着当我们使用 @State 来包装字符串,最终得到的实际属性类型是 State。...Xcode 有一个非常有用的命令,称为“快速打开”(使用 Cmd + Shift + O 进行访问),该命令使您可以项目或已导入的任何框架中找到任何文件或类型。...您将进入 SwiftUI 生成的界面,该界面实质上是 SwiftUI 向我们展示的所有的部分。那里没有实现代码,只有协议,结构体,修饰符等的许多定义。

    1.7K10

    SwiftUI 布局的工作原理

    在此过程,您还将学习如何创建更高级的布局对齐,使用GeometryReader构建特殊效果,以及更多——我知道您会热衷于自己的应用程序中部署的一些真正强大的功能。...幕后,SwiftUI 执行第四步:尽管它将位置和大小存储为浮点数,但在渲染SwiftUI 会将所有像素舍入到最接近的值,这样我们的图形仍然清晰。... Project3 为什么 SwiftUI 的修饰符顺序很重要?...这意味着当我们应用修饰符,进入层次结构的实际视图是修改后的视图,而不是原始视图。 我们的简单background()示例,这意味着ContentView的顶层视图是背景,而内部是文本。...当我background()中使用它,简化的布局对话是这样工作的: 背景:嘿,文本,你可以有整个屏幕,你想要多少? 文本:我需要X乘Y点;我不需要其余的。 背景:好的。

    3.8K20

    iOS CoreData (一) 增删改查

    Core Data是iOS5之后才出现的一个框架,本质上是对SQLite的一个封装,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件,也能够将保存在数据库的数据还原成...OC对象,通过CoreData管理应用程序的数据模型,可以极大程度减少需要编写的代码数量!...NSPersistentContainer是一个容器,封装了应用程序CoreData Stack(核心数据栈堆),简化了创建和管理的核心堆栈的数据处理创建NSManagedObjectModel,NSPersistentStoreCoordinator...NONE:指定下列表达式没有的元素。比如,NONE children.age < 18。它在逻辑上等于NOT (ANY ...)。...调试: 打开Product,选择Edit Scheme.

    1.2K70
    领券