初始化核心数据 SwiftUI

2024-02-29

我正在尝试初始化数据,以便当用户第一次安装应用程序时它会有一些数据。 init 不起作用,但为什么呢?

对于核心数据上的 CRUD 操作,我正在使用xcdatamodeld包含名为的实体的文件ProgrammingLanguage它有两个字符串属性:“name”和“creator”。这是代码:

struct ContentView: View {

@Environment(\.managedObjectContext) var managedObjectContext

@FetchRequest(
    entity: ProgrammingLanguage.entity(),
    sortDescriptors: [
        NSSortDescriptor(keyPath: \ProgrammingLanguage.name, ascending: true),
    ]
) var languages: FetchedResults<ProgrammingLanguage>

init() {

    let language = ProgrammingLanguage(context: self.managedObjectContext)
    language.name = "SwiftUI"
    language.creator = "Some text"

    do {
        try self.managedObjectContext.save()
    } catch {
    }

}

var body: some View {
    NavigationView {
        List {
            ForEach(languages, id: \.self) { language in
                Button(action: {
                }) {
                    Text("Creator: \(language.creator ?? "Anonymous")")
                }

            }
        }
    }
}
}

就好像它没有保存它一样。这里发生了什么?该 init 应该在数据库上创建数据,我将能够在视图上读取它......


SwiftUI

我建议这样做.onAppear()修饰符。在您的代码示例中它将是:

struct ContentView: View {
    
    @Environment(\.managedObjectContext) var managedObjectContext
    @FetchRequest(
        entity: ProgrammingLanguage.entity(),
        sortDescriptors: [
            NSSortDescriptor(keyPath: \ProgrammingLanguage.name, ascending: true),
        ]
    ) var languages: FetchedResults<ProgrammingLanguage>
    
    
    var body: some View {
        NavigationView {
            List {
                ForEach(languages, id: \.self) { language in
                    Button(action: {
                    }) {
                        Text("Creator: \(language.creator ?? "Anonymous")")
                    }
                    
                }
            }.onAppear() {
                let language = ProgrammingLanguage(context: self.managedObjectContext)
                language.name = "SwiftUI"
                language.creator = "Some text"
                do {
                    try self.managedObjectContext.save()
                } catch let error {
                    print(error)
                }
            }
        }
    }
}

希望这会有所帮助! 我在这里找到了解决方案:苹果开发者论坛 https://developer.apple.com/forums/thread/132746

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初始化核心数据 SwiftUI 的相关文章

  • 仅在 iPhone X 上显示状态栏

    如果不是 iPhone X 则希望隐藏状态栏 如果是 iPhone X 则希望显示状态栏 这很可能必须以编程方式完成 因为 plist 中没有支持此功能的键 我发现的最接近的一个是UIStatusBarHidden 方法一 You have
  • Swift:无法为“[UIViewController]”类型的值添加下标?

    我试图弄清楚如何在 Xcode 7 iOS9 上的 Swift 中解决此问题 并且我也遇到此错误 无法为 UIViewController 类型的值添加下标 索引类型为 Int 任何建议表示赞赏 谢谢 My code func indexP
  • 除非在后台线程中获取新的引用,否则存在潜在的引用计数问题

    我有一个second https stackoverflow com questions 28898966 prefer property accessor or kvc style for accessing core data prop
  • 如何在 Swift Playgrounds 中获得弹出对话框

    我想知道如何在 Swift 中弹出一个对话框游乐场 是的 必须在 Playgrounds 中 我尝试了以下代码 直接来自 AppleDevs 站点 然而 无论我如何尝试 self tag always抛出错误 谁能帮我这个 import U
  • 使用prepareForSegue传递数据

    我试图将数据从viewController 1传递到viewController2 我有2个按钮和1个segue 因此有一个segue标识符 这2个按钮 按下时每个按钮应显示 1个标签用于显示标题 1个textView用于显示定义 我很难显
  • CustomNSError 协议有什么作用以及为什么我应该采用它?

    什么是CustomNSError协议的用途以及为什么我应该采用它 Apple提供的文档仅指出 描述错误类型 具体提供域 代码和 用户信息字典 我已经在谷歌上搜索过 但找不到与我的问题相关的任何内容 每种类型都符合Error协议是隐含地桥接的
  • 如何在 Swift 中创建 UIAlertView?

    我一直在努力在 Swift 中创建 UIAlertView 但由于某种原因我无法得到正确的语句 因为我收到此错误 找不到接受提供的 init 重载 论点 我是这样写的 let button2Alert UIAlertView UIAlert
  • let/var 如何解决可变性? [复制]

    这个问题在这里已经有答案了 我没有任何问题 我只是想对有关可变性的问题进行一些澄清 在 Objective C 中我们会使用例如NSMutableArray得到一个可变数组和NSArray得到一个不可变的 我对两者的内部运作了解不多 但据我
  • 来自索引范围 Swift 的新数组

    我怎样才能做这样的事情 从数组中取出前 n 个元素 newNumbers numbers 0 n 目前出现以下错误 error could not find an overload for subscript that accepts th
  • 如何使用 SwiftUI 获取多个屏幕上的键盘高度并移动按钮

    以下代码获取键盘显示时的键盘高度 并将按钮移动键盘高度 在转换源 ContentView 和转换目标 SecibdContentView 处以相同的方式执行此移动 但按钮在转换目标处不移动 如何使按钮在多个屏幕上移动相同 import Sw
  • 二元运算符“/”不能应用于两个(Int)操作数[重复]

    这个问题在这里已经有答案了 我得到了Binary operator cannot be applied to two Int operands当我将以下代码放入 Xcode 中的 Swift Playground 时出错 func sumO
  • 如何将CIFilter应用到UIView上?

    根据Apple docs 过滤属性CALayer不支持iOS 当我使用正在申请的应用程序之一时CIFilter to UIView即 Splice Funimate 和 Artisto 的视频编辑器 Videoshow FX 这意味着我们可
  • WKWebview 中的 iCLoud 文档选择器关闭容器视图

    我有一个 WKWebview 加载基于 Web 的 UI 我希望用户能够从其 iCloud 文档上传文件 我已授予正确的权限 并且可以浏览 iCloud 文档 但是 当我选择文件或单击取消按钮时 文档选择器视图也会关闭 WKWebview
  • 如何观察UserDefaults的变化?

    我有一个 ObservedObject在我看来 struct HomeView View ObservedObject var station Station var body some View Text self station sta
  • 在 React Native 中将 Swift 事件发送到 Javascript 的正确流程

    我一直在尝试使用 Swift 构建全面的蓝牙功能 我目前陷入了如何将事件从 Swift 发送回 React Native 的困境 我尝试过this https stackoverflow com questions 31870775 rea
  • 如何检测 swiftui 中是否存在键盘

    我想知道按下按钮时键盘是否存在 我该怎么做 我已经尝试过 但我没有任何运气 谢谢 使用该协议 KeyboardReadable 你可以符合任何View并从中获取键盘更新 KeyboardReadable协议 import Combine i
  • 如何在 swiftUI (macOS) 中检测按键按下和释放

    除了标题之外没什么可说的 我希望能够在按下按键和释放按键时 在 macOS 上 在 swiftUI 视图中执行操作 在 swiftUI 中是否有任何好的方法可以做到这一点 如果没有 有什么解决方法吗 不幸的是 键盘事件处理是其中一个令人痛苦
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • Swift 中的柯里函数

    我想创建一个返回柯里函数的函数 如下所示 func addTwoNumbers a Int b Int gt Int return a b addTwoNumbers 4 b 6 Result 10 var add4 addTwoNumbe
  • Xcode 10 Beta 5 — clang:错误:链接器命令失败,退出代码为 1

    有人可以帮我吗 我的项目一切正常 但更新到 Xcode10 Beta5 后 尝试在 iPhone 上运行该应用程序时出现此错误 然而模拟器可以工作 请帮助我 我已经对这个问题进行了网络搜索并发现this https stackoverflo

随机推荐

  • 如何在十六进制和十进制之间转换数字

    C 中如何进行十六进制数和十进制数之间的转换 要将十进制转换为十六进制 请执行 string hexValue decValue ToString X 要从十六进制转换为十进制 请执行以下任一操作 int decValue int Pars
  • Angular 5 注入器 - 如何注入字符串

    我正在尝试将字符串注入我的角度分量中 下面的代码工作正常 但它给出了弃用警告 get 已弃用 从 v4 0 0 开始使用 Type 或 InjectionToken Component selector app label template
  • 主数据库中的外键引用附加数据库

    SQLite3 中是否有任何方法可以在主数据库中拥有引用附加数据库中的列的外键 反之亦然 我希望在多个进程之间共享附加的 只读 数据库 每个进程都有自己的 读 写 主数据库 我像这样创建父表 在数据库 ParentDB 中 create t
  • Angular 指令封装了 ng-change 的延迟

    我有一个搜索输入字段 其中的重新查询函数绑定到 ng change
  • 有没有办法禁用 ASP.NET MVC 3 RC2 中的 JSON ModelBinder?

    在 ASP NET MVC 3 RC2 中 默认的 ModelBinder 将自动解析请求体 如果Content Type被设定为application json 问题是 这留下了Request InputStream在流的末尾 这意味着
  • 基于 cputime 的 MATLAB 条件代码执行

    我有一个 MATLAB 代码 对于某些输入情况需要无限的时间来执行 我想从代码的执行中排除那些导致 MATLAB 函数执行时间超过 X 分钟的输入值 因为 MATLAB 意识到执行时间太长 你知道有什么方法可以做到这一点吗 如果它是用 C
  • PyQt5和OpenCV有类似的库;如何避免两者之间的冲突?

    我在同一个 conda 虚拟环境中拥有 PyQt5 和 OpenCV opencv python 3 4 1 15 PyQt5 5 10 1 每当我运行 PyQt5 应用程序时 我都会收到许多如下警告 objc 7992 Class QCo
  • 配置 Spring Security 以针对 REST URL 返回 403 并针对其他 URL 重定向到登录

    我的 Web 应用程序有一堆 普通 资源 html 页面等 以及一些由前面提到的 html 页面从 JavaScript 调用的 REST 资源 如果会话超时 用户将被重定向到登录表单 这对于 普通 资源来说非常有用 但对于 REST 资源
  • Tie::IxHash 在 Perl 中是如何实现的?

    我最近在 Perl 中遇到了一种情况 使用保留顺序的哈希将使我的代码更具可读性和更易于使用 经过一番搜索后 我发现了 Tie IxHash CPAN 模块 它正是我想要的 在我不顾一切并开始使用它之前 我想更好地了解它的工作原理以及我可以期
  • 从 Eclipse 中删除 SVN 用户名和密码在 Windows 7 中不起作用

    我在 Windows 7 中使用 Eclipse Helios 32Bit 带有 Subclipse 1 6 x 我想重置我的 SVN 用户名和密码 在网上 我找到了以下步骤 关闭 Eclipse 或 RAD WSAD 导航到以下目录 将
  • Bootstrap 平衡项目符号列

    我有一个无序列表 我希望它在页面上保持平衡 因此 我应用了 Bootstrap 列平衡技术 如本示例所示 当然 真正的项目有更长的文本 div class row ul li class col xs 12 col md 6 item 1
  • AWS ECR PULL 没有基本身份验证凭据

    我正在使用 Terraform 部署 Azure K8s 集群 并且图像托管在 Amazon ECR 中 从 ECR 提取映像时部署失败 并出现以下错误 Failed to pull image tooot eu west 1 amazon
  • 在db2中使用动态表名

    目前 在我的项目开发中 需要根据某些条件生成记录计数 其中表名存储在单独的表中 例如 xx表存储表名 列名是tableInfo 我以这样的方式编写了存储过程 DECLARE FGCURSOR CURSOR FOR SELECT tableI
  • 如何正确使用Jackson Mixin注解实例化第三方类?

    我有一个第三方库类 来自 Apache Axis 我想通过 Jackson JSON 序列化它 public class NonNegativeInteger extends BigInteger public NonNegativeInt
  • 混合 html 和 json 模板时如何在 thymeleaf 中正确设置内容类型

    我正在使用 spring boot 和 thymeleaf 开发单页应用程序 我有两种模板 一个将 SPA 脚手架页面生成为 html 多个生成 json 响应 json 响应正在以内容类型发送回text html当我希望他们成为appli
  • 用户如何注册 Oauth?

    我一直在研究这个Oauth概念 但我仍然对这个概念很困惑 我的主要问题之一是如何注册谷歌帐户或推特帐户 例如 假设为了注册我的网站 您必须提供用户名 密码 电子邮件 组名 如果您通过我的网站注册 那么您可以非常轻松地提供这些字段 然而 假设
  • 禁用浏览器链接 - 哪个工具栏

    我想禁用 Visual Studio 浏览器链接 我发现这个问题 如何在 VS NET 2013 中禁用 vwd js artery https stackoverflow com questions 17390158 how can i
  • Silverlight/WPF 图表工具包。我可以更改 CategoryAxis 上刻度线的频率吗?

    LinearAxis 上有 Interval 属性 但 CategoryAxis 上没有 我需要控制 X 轴上刻度线的频率 原生逻辑做了太多标记 即使我将图表拉伸到 3 个宽显示器 我也无法阅读 几个建议 1 CategoryAxis 有一
  • 使用dagger 2的Android生命周期库ViewModel

    我有一个 ViewModel 类 就像定义在连接 ViewModel 和存储库的部分架构指南 https developer android com topic libraries architecture guide html 当我运行我
  • 初始化核心数据 SwiftUI

    我正在尝试初始化数据 以便当用户第一次安装应用程序时它会有一些数据 init 不起作用 但为什么呢 对于核心数据上的 CRUD 操作 我正在使用xcdatamodeld包含名为的实体的文件ProgrammingLanguage它有两个字符串