使用 Core Data(在 SwiftUI 中)提供的数据并与另一个视图共享

2024-03-02

我在这里遇到了一些麻烦Core Data and SwiftUI.

我的主视图可以访问来自实体的一些信息Core Data.

我想使用某种绑定将其传递给子视图,以便它也可以访问该数据并可能更新它。

这是我尝试过的代码的一个版本。

在主视图一侧:

@Environment(\.managedObjectContext) var managedObjectContext
......
@FetchRequest(
    entity: MyEntity.entity(),
    sortDescriptors: [NSSortDescriptor(keyPath: \MyEntity.name, 
                                       ascending: true)]
) var myList: FetchedResults<MyEntity>

......

var body: some View {
    VStack {
      Button(action: {
      ..........
      }).sheet(isPresented: $showingList) {
        MyListView(localList: self.$myList,
                   moc:self.managedObjectContext,
                   ......)
    }
    .....
}

在子视图方面:

struct MyListView: View {
    @Binding var localList: FetchedResults<MyEntity>
    .....
}

在上面的代码中,@FetchRequest 正在工作,获取我期望的信息。但在那之后,我尝试将 @FetchRequest 的行为表现得像 @State 一样。但它不起作用。允许我的子视图(即 MyListView)访问 @FetchRequest 提供的数据的正确方法是什么?

在写这篇文章之前,我显然已经尝试过该代码的一些其他变体,同时阅读了一些教程;但它仍然不起作用。


你无法修改FetchedResults,因为它是只读的,所以只需按原样传递即可

MyListView(localList: self.myList,
           moc:self.managedObjectContext,
           ......)

and

struct MyListView: View {
    var localList: FetchedResults<MyEntity>
    .....
}

如果你想MyListView行为基于FetchRequest然后将其显式注入到主视图中,与主视图类似,CoreData 会缓存获取的实体,因此没有缺点。

.... 您必须为此在工作表视图中显式传递上下文环境,例如 MyListView().environment(.managedObjectContext, self.managedObjectContext)

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

使用 Core Data(在 SwiftUI 中)提供的数据并与另一个视图共享 的相关文章

  • 如何从 Xib 文件加载自定义 UITableViewCell?

    问题很简单 如何加载自定义UITableViewCell来自 Xib 文件 这样做可以让您使用 Interface Builder 来设计您的单元 由于内存管理问题 答案显然并不简单 这个线程 https stackoverflow com
  • 在后台每 X 分钟执行一次函数不起作用

    我使用此代码每 X 分钟执行一次函数 void executeEveryOneMinute self myFunction dispatch after dispatch time DISPATCH TIME NOW int64 t 60
  • 使用 iPhone 控制蓝牙音频设备

    我正在寻找为 iPhone 编写应用程序 它将能够控制汽车中的收音机和 CD 播放器 收音机和播放器具有可用的蓝牙连接 我开始这个问题是为了获得这个地方所需的所有信息 我有几个问题 但如果您发现任何我没有要求的对我开始开发此应用程序不重要的
  • 如何快速防止标签中出现孤儿?

    我有一个可以有一两行的标签 如果它有两行 我希望第二行至少有两个 或者可能三个 单词 而不仅仅是一个 关于如何使用 swift 实现这一点有什么想法吗 提前致谢 Daniel 编辑 我删除了我愚蠢的第一个想法 这些想法并没有真正的帮助 好吧
  • 在 UIView 中绘制彩色文本 -drawRect: 方法

    我正在尝试在我的中绘制彩色文本UIView子类 现在我正在使用单视图应用程序模板 用于测试 除了以下内容外 没有任何修改drawRect method 文本已绘制 但无论我将颜色设置为什么 它始终是黑色的 void drawRect CGR
  • 返回一个dispatch_async获取的变量[重复]

    这个问题在这里已经有答案了 基本上 一个方法需要返回一个在dispatch async中获取的NSDictionary 这是我尝试过的 NSDictionary fetchNSDictionary dispatch queue t Queu
  • 将 UIRefreshControl 用于 UIWebView

    我在 iOS 6 中看到了 UIRefreshControl 我的问题是是否可以通过下拉来刷新 WebView 而不是像在邮件中那样让它弹出 我使用 rabih 的代码是 WebView UIRefreshControl refreshCo
  • Swift 3 中数组的 indexOf(_:) 方法的替换

    在我的项目 用 Swift 3 编写 中 我想使用从数组中检索元素的索引indexOf 方法 存在于 Swift 2 2 中 但我找不到任何替代方法 Swift 3 中是否有任何好的替代方法或类似的方法 Update 我忘记提及我想在自定义
  • 如何将 CIFilter 输出到相机视图?

    我刚刚开始使用 Objective C 我正在尝试创建一个简单的应用程序 它显示带有模糊效果的相机视图 我得到了与 AVFoundation 框架一起使用的相机输出 现在 我正在尝试连接 Core 图像框架 但不知道如何连接 Apple 文
  • 如何在 swift 中以编程方式使用坐标打开地图应用程序?

    我想在地图应用程序中打开纬度和经度 我尝试了这段代码HERE https stackoverflow com questions 12504294 programmatically open maps app in ios 6 func g
  • ExpandableLabel iOS 中的“少看”

    我正在使用第三方库可扩展标签 https github com apploft ExpandableLabel实施一个see more特征 我正在寻找仅快速的解决方案 其中包含标签中的文本而不是按钮中的文本 因此这可以完美地工作 添加库并更
  • Excel 工作表到 iPhone 数据 -- A 点到 B 点

    尽可能简单 我有一个非常简单的 Excel 电子表格 只有 1000 多条记录 我想将其用作 iPhone 应用程序的静态数据源 最好的进攻计划是什么 我心中的可能性 1 直接读取XLS作为数据源 是否有Obj C库用于此 2 将XLS 转
  • Audiokit 修剪音频

    我正在制作音频编辑应用程序 我想修剪我的音频 对于音频编辑 我使用 AudioKit 框架 但我在教程和示例中找不到如何使用此框架修剪音频 异步导出允许设置开始和结束样本 https github com AudioKit AudioKit
  • IOS 上图像的加密/解密

    我们正在使用加密 解密和 UIIMAGE 如果我们加密和解密 UIIMAge 而不保存到 iphone 画廊中 它工作正常 但如果我们加密 保存到画廊中 将 加密的图像 加载到应用程序中 然后解密它效果不好 我们使用这个函数来加密 解密 保
  • CIAdditionCompositing 给出不正确的效果

    我正在尝试通过平均其他几个图像来创建图像 为了实现这一点 我首先将每个图像变暗 其系数等于我平均的图像数量 func darkenImage by multiplier CGFloat gt CIImage let divImage CII
  • 调用了 numberOfRowsInSection 但未调用 cellForRowAtIndexPath

    在我的表视图中节中的行数被调用两次但是cellForRowAtIndexPath不叫 我想在 tableView 中显示 Facebook 好友列表 如果 cellForRowAtIndexPath 调用我的问题就解决了 我在这里的数组中得
  • Xamarin.Forms DataTemplateSelector 不适用于 iOS(未调用构造函数)

    我正在膨胀数据模板选择器 如下所示
  • 禁用 iPhone 4S / 新 iPad 键盘上的听写按钮

    我们的应用程序是一个医疗保健应用程序 我们的应用程序中有一个符合 HIPAA 标准的语音识别器 所有听写都可以通过它进行 医院不希望医生意外开始与不符合 HIPAA 标准的 Nuance Dragon 服务器进行对话 因此 我正在寻找可以抑
  • iOS 键盘显示后分屏宽度

    我刚刚开始研究 Cordova 应用程序对分屏多任务处理的支持 到目前为止 该应用程序在模拟器中的 iPad 上显示和调整大小都很好 但是当我单击编辑字段并显示软件键盘时 100 宽度的值开始返回整个屏幕 而不是给出的窗口 初始显示 到目前
  • ArraySlice 中的 Swift [重复]

    这个问题在这里已经有答案了 在数组上使用 prefix 方法后 我得到了所谓的 arraySlice 我怎样才能将其转换为数组 我试图从 FacebookGraphApi 获取 Ints 然后请求前 3 个 前缀 3 并尝试将它们添加到新数

随机推荐

  • Powershell:确定进程是 32 位还是 64 位

    有没有办法确定给定的进程 ID 是 32 位进程还是 64 位进程 我正在使用 Powershell v3 0 尝试这个 Add Type MemberDefinition DllImport kernel32 dll SetLastErr
  • 改造响应保留旧数据并将新数据添加到 editText 搜索的数据中

    我正在使用 editText 搜索从 API 获取数据 第一次搜索时 它按预期工作 但在第二次搜索时 它不会显示唯一的新响应 而是保留旧响应并在其末尾添加新响应 它的行为就像缓存以前的一样 我该如何修复该问题以仅显示最后一个搜索词结果 分段
  • Google 云端硬盘文件列表:500 错误

    对于我们的应用程序 我们使用具有 2 足授权的 Google Drive SDK 我们使用 Drive SDK 很长时间了 但今天我们遇到了 Files list API 的新问题 https developers google com d
  • 用于一对多查找的 Cassandra 数据建模

    考虑存储用户及其联系人的问题 大约有一亿用户 每个用户有几百个联系人 平均联系人大小为 1kb 可能有些用户拥有太多联系人 gt 5000 并且可能有一些联系人比平均 1kb 大得多 例如 10 倍 用户会主动添加联系人 但很少会删除联系人
  • 使用 Ansible 配置 Jenkins 2.0

    我使用 Ansible 来配置我们的服务器 我安装了 Jenkins 2 0 但当我打开 Web UI 时 它变成了启动配置 我如何使用 Ansible 或 shell 或 jenkins cli 来做到这一点 CentOS 7 Ansib
  • 登录时从用户集合中获取用户数据

    我目前正在开发一个在客户端初始化了 firebase 的应用程序 当用户通过 firebase 登录时 我想从 firestore 获取用户的数据 我目前正在这样做onAuthStateChanged侦听器并成功获取用户 我想知道这是否是获
  • 套接字连接超时:规范在哪里?

    我的工作环境是我的局域网 下面的代码示例是用 Java 语言编写的 但我的问题是关于 TCP 而不是编程 我遇到过以下连接超时的情况 2 ms when connection established 当主机处于活动状态但未侦听指定套接字端口
  • emacs lisp 中的 let 和 flet

    我不知道你是否会称其为规范公式 但为了绑定本地函数 GNU 手册建议我使用 flet defun adder with flet x flet f x x 3 f x 然而 我偶然尝试了 在玩了一会儿Scheme之后 下面的表达式 其中我使
  • 将给定字符串转换为具有给定子字符串的回文

    给定字符串 S1 和字符串 S2 将字符串 S1 转换为回文字符串 例如 S2 是该回文字符串的子字符串 S1 上允许的唯一操作是将任何字符替换为任何其他字符 找出所需的最少操作次数 我已经编写了这段代码 可以计算需要使用常规字符串进行多少
  • AngularJS CORS 问题

    我已经搜索了 200 多个网站 也许有点夸张 但也不是很多 来了解如何使用 angularjs 处理 cors 我们有一台运行 Web API 服务器的本地计算机 我们正在开发一个调用 API 获取数据的客户端 当从服务器运行客户端时 我们
  • 计算多维数组中的元素数量

    我有这个代码 loadData function jsonArray var id this attr id for var i in jsonArray id tbody append tr class entry details pag
  • 声音匹配/搜索

    实际上声音匹配 搜索的当前技术水平如何 我目前正在远程参与规划一个 Web 应用程序 该应用程序将包含并公开录制的短音频剪辑 最多 3 5 秒 人名 的数据库 有人提出了是否有可能实现基于用户语音输入的搜索的问题 我的直觉告诉我 从计算和算
  • 如何在同一服务器环境下运行PHP和Tomcat?

    不久前在 AskUbuntu 上问过这个问题 https askubuntu com questions 630897 apache httpd backed by both tomcat and php https askubuntu c
  • TypeScript:类型“EventTarget & Element”上不存在属性“checked”。为什么它不存在?

    我收到此错误 错误 17 35 TS2339 类型 EventTarget Element 上不存在属性 checked 但这绝对是不可能的错误 因为 React 文档说checked确实存在于target的复选框 https reactj
  • 对复合对象数组以及日期范围进行 Elasticsearch 查询

    您好 我有一个问题 如何为具有日期范围和附加字段参数的嵌套复合对象创建弹性搜索查询 如下所示 name A availability partial true dates gte 2020 12 01 lte 2020 12 02
  • 在 Java 8 中使用 lambda 出现意外错误

    我正在使用 Java 8 Update 20 32 位 Maven 3 2 3 Eclipse Luna Build id 20140612 0600 32 位 开始使用 lambda 后 我的项目中的一些类开始在 Maven 中报告编译错
  • Javascript 前进后退按钮

    我在我正在开发的网站的主页上使用 s3Slider javascript 幻灯片 http alexisparkinn com http alexisparkinn com 我真的很喜欢这张幻灯片 但它无法让用户转到下一张或上一张图像 我怎
  • 有没有办法对VBA中的代码施加时间限制?

    我想知道是否有人有对代码段施加时间限制的经验 我已经用 VBA 将搜索引擎编程到 Excel 电子表格中 并且有一段代码可以删除重复的结果 现在 如果给出最模糊的搜索条件 这部分有时可能会持续相当长的时间 所以我想对这个操作施加一个时间限制
  • 使用滑块更改 QTimer 的间隔超时

    timer new QTimer this timer gt setInterval 50 QPushButton start new QPushButton Start Stop this start gt setText Start S
  • 使用 Core Data(在 SwiftUI 中)提供的数据并与另一个视图共享

    我在这里遇到了一些麻烦Core Data and SwiftUI 我的主视图可以访问来自实体的一些信息Core Data 我想使用某种绑定将其传递给子视图 以便它也可以访问该数据并可能更新它 这是我尝试过的代码的一个版本 在主视图一侧 En