SwiftUI TabView 在添加/删除 CoreData 元素期间给出错误消息

2023-12-08

我目前正在尝试将 TabView 与 CoreData 一起用于轮播视图(PageTabViewStyle)。

当我按如下顺序添加新页面时,不会发生错误:age.name:3,page.name:4,page.name:5

但是,如果我将数字放在第一个/中间的顺序中,例如 page.name: 2,就会发生错误

如果我输入 page.name: 6,则不会出现错误,并且与 Alphabet 相同。 b c d e -> 输入“f”,没问题,但输入“a”错误。

关闭应用程序并打开应用程序后,我无论如何都会看到更新的(添加页面/删除页面)ContentView。

我猜测,TabView有排序问题,所以我尝试对CoreData的列表进行排序,将LifeCycle更改为SwiftUI,但错误再次出现。 我也尝试过 Firebase,但同样的问题。

错误信息:

"libc++abi: terminating with uncaught exception of type NSException
    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'attempt to delete item 1 from section 0 which only contains 1 items before the update'
    terminating with uncaught exception of type NSException"  

内容视图

TabView() {
    ForEach(pages, id: \.self) { page in
        SubPage(whichPage: page)
    }
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))

AddPage

let page = Page(context: self.moc)
        page.name = pageName

        do {
            print("page.name: \(page.name ?? "Unknown")")
            try self.moc.save()
            
        } catch {
            print(error)
        }

SubPage

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

var whichPage: FetchedResults<Page>.Element

使用 VStack 或 HStack 或 List 代替 TabView 可以正常工作,没有任何问题。


最后,这个问题在 Xcode 13 & iOS 15 中得到了解决!

完整代码

TabView {
    ForEach(pages) { page in
        SubPage(whichPage: page)
    }
}
.tabViewStyle(PageTabViewStyle())

or

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

SwiftUI TabView 在添加/删除 CoreData 元素期间给出错误消息 的相关文章

  • 为什么 Xcode 会为选择器列出自动完成方法?

    自从我升级到最新的 Xcode 以来 自动完成功能就列出了 删除线 方法selector目的 我无法判断这是 Xcode 的错误还是有一些我不知道的新语法更改 如果你把它插入你的 Playground 并删除里面的方法 selector t
  • 当现有的转换或演示正在进行时;导航堆栈不会更新

    我遇到过这个警告 PushViewController animated 在现有转换或演示文稿运行时调用 发生 导航堆栈不会更新 当试图打电话时navigationController popViewControllerAnimated f
  • 如何使用 Swift 将高分游戏保存在排行榜上?

    我使用 SpriteKit 和 Xcode 7 beta 制作了一个游戏 我尝试放置 GameCenter 和 Leaderboard 但问题是排行榜中的分数不会改变 它始终保持 0 游戏的高分不会保存在 Leaderboard 中 我不知
  • 如何在 X 秒后更改 NSTimer 的 NSTimeInterval?

    我正在 swift 2 中制作一个应用程序 其中有两个计时器 10 秒后我希望另一个计时器走得更快 我尝试过这样做 但它不起作用 我正在尝试更改 vartime to 1 IBOutlet var displayTimeLabel UILa
  • 此应用程序的包标识符与其代码签名标识符不匹配

    当我尝试在设备上构建并运行应用程序时 出现以下错误App installation failed This application s bundle identifier does not match its code signing id
  • Swift 无法将表达式的类型“Void”转换为类型“String!”

    我正在尝试使用一段示例代码这篇 NSHipster 文章 http nshipster com ios8 大约在页面的中间位置 var inputStream NSInputStream var outputStream NSOutputS
  • 是否可以强制 MapKit 显示所有注释而不进行聚类?

    我有两个类都符合MKAnnotation 我想知道有没有办法强制MapKit当用户缩小并显示所有注释时不聚集注释 上述解决方案对我不起作用 但是这个解决方案有效 final class CarPinMarkerView MKMarkerAn
  • UITableview Commit EditingStyle 具有多个按钮? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 UITableview 提交编辑样式中添加多个按钮 我需要显示一个带有删除按钮的更多按钮 由于无法使用公共API 所以你可以更好地
  • iOS 联系人 如何通过电话号码获取联系人

    我只想通过电话号码获取联系人姓名 我尝试过这个 但速度太慢 CPU 速度超过 120 let contactStore CNContactStore let keys CNContactGivenNameKey CNContactFamil
  • Firebase获取孩子ID swift ios

    我的 Firebase 看起来像这样 贝娄Active Orders看来childs根据他们的不同有不同的名字UID 用户身份 这是我的代码 用于获取孩子的 ID 无论孩子的名字是什么 但它似乎根本不起作用 获得的正确方法是什么child
  • SwiftUI 关闭多个模态表

    我在用 sheet isPresented self showModal 在我的根视图中呈现一个模式 在模态中 我正在使用NavigationView引导用户浏览各个页面 对于用户配置文件构建器 在导航堆栈的最后一页中 我正在使用 Envi
  • 使用Combine,如何在网络请求后取消分配订阅

    如果您使用组合来处理网络请求URLSession 那么你需要保存Subscription 又名 AnyCancellable 否则它会立即释放 从而取消网络请求 稍后 当网络响应被处理后 您想要取消分配订阅 因为保留它会浪费内存 下面是执行
  • 在从初始化器返回 nil 之前,必须初始化类实例的所有存储属性

    尽管我不断收到上述消息 但我正在尝试在课堂上使用此代码 let filePath NSString let fileHandle NSFileHandle let totalFileLength CUnsignedLongLong init
  • Core Data 与 SQLite 3 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • iOS 9.3.2 破坏 MPMusicPlayerController

    我正在尝试将 Apple Music 集成到我的应用程序中 直到今天早上我才设法使其完美运行 更新到 iOS 9 3 2 后 一切都不一样了 权限系统的工作原理相同 SK云服务控制器 https developer apple com li
  • swift 中 pch 的替代品是什么?

    我想知道可以用什么来代替 swift 中的 pch 有没有 pch 的替代方案或方法可以快速摆脱导入 这样我们就不需要对所有类都这样做 我不想一直随身携带 进口 swift 中 pch 的最佳替代品是什么 您无法在 swift 中定义 宏
  • 如何将 UIImage 添加到分组的 UITableViewCell 中,使其圆角?

    我正在尝试将图像添加到分组 UITableView 中的表格单元格 但图像的角未被剪裁 剪切这些内容的最佳方法是什么 除了在 Photoshop 中剪切它们之外 表格内容是动态的 例如 表格中的第一张图像只需将左上角圆角化即可 这是我的解决
  • 在 swift ios 中播放远程 mp3 文件需要花费大量时间

    我有麻烦了 我想在我的应用程序中播放远程 mp3 文件 但 mp3 文件需要很长时间 大约 5 6 分钟 来播放 为什么 任何人都可以建议我应该做什么 import UIKit import AVFoundation class TestV
  • xcode 错误:...此类与键 ibShadowedLargeTitleTextAttributes 的键值编码不兼容

    我不断收到此错误 在我使用颜色集之前 该应用程序就可以运行 该错误说明了一些有关ibShadowedLargeTitleTextAttributes 我没有为大标题阴影设置任何颜色 我使用默认值 透明 我重新启动了 Xcode 使用了阴影颜
  • UITableView 在单元格刷新时滚动到顶部

    我有一个 UITableView 其中一个单元格的大小是动态调整的 以适应其中的 UITextView 每当键入一个键时 单元格都会检查计算出的高度是否增加 就像换行符一样 因此它可以告诉表单元格的高度需要重新计算 我用这段代码做到了这一点

随机推荐

  • Rails - 使用复选框选择多个对象并选择要执行的操作

    我希望能够为对象列表创建复选框 然后向用户提供对所选对象执行的许多操作 IE 删除 存档等 我知道 ryan 的截屏视频 但它没有解释如何为所选对象创建多个操作的链接 它只是显示他创建一个 form tag 其中包含一个操作的 url 和一
  • 在非托管 C++ 程序中实现 C# DLL COM 文件

    这是我的另一个问题 也导致了这个问题作为参考 如何从非托管 C 调用托管 C 方法 我已成功创建 C COM 文件 现在我需要一个关于如何在非托管 C 中实现它的简单解释 我正在遵循这个示例 但 C 部分很弱 http www codepr
  • JTextField 的值更改侦听器

    我希望在用户更改文本字段中的值后立即显示消息框 目前 我需要按 Enter 键才能弹出消息框 我的代码有什么问题吗 textField addActionListener new java awt event ActionListener
  • 如何在我的汇编代码中调用 C++ 函数

    我需要从程序集中调用 PrintResult 来显示结果 我知道我必须在某处使用 extrn PrintResult 并且我应该使用 call PrintResult 来调用该函数 但我不太确定如何使用它 有什么建议 public Squa
  • NSAttributedString 的boundingRectWithSize 返回错误的大小

    我试图获取属性字符串的矩形 但boundingRectWithSize调用不考虑我传入的大小 并且返回一个具有单行高度的矩形 而不是一个大高度 它是一个长字符串 我已经尝试过传递一个非常大的高度值和 0 如下面的代码所示 但返回的矩形始终是
  • 如何在页面关闭时执行 PHP 代码?

    我试图找到一种方法来在用户关闭页面后执行一些 PHP 代码 在我的应用程序中 一旦用户关闭或导航离开页面 服务器就会在数据库中将用户状态为 离线 这需要代码知道用户何时离开页面 我的应用程序也有无限的负载 即它将休眠直到用户关闭页面 当用户
  • 使用 Gulp 来连接和 Uglify 文件

    我正在尝试使用 Gulp 来 获取 3 个特定的 javascript 文件 将它们连接起来 然后将结果保存到文件中 concat js 获取这个串联文件并对其进行 uglify minify 然后将结果保存到另一个文件 uglify js
  • 从 Jenkins 管道并行步骤收集数据

    从并行步骤收集数据 例如通过 失败结果 的最佳方法是什么 到目前为止我已经达到了什么 groovy def fspam name spam spam name BEEN THERE TOO pipeline node slave stage
  • Spring Boot Application.properties 没有自动完成建议

    我是 Spring Boot 初学者 我使用 spring 初始化程序创建了一个示例项目 在 application properties 中我想更改服务器 端口但编辑器不知道 什么都不知道 有什么问题 IntelliJ IDEA 社区版不
  • 使用 es6 或 lodash 将字符串数组转换为对象数组

    我有一个字符串数组 我想将其转换为对象数组 array a b c 我想生成 array name a isChecked false availibility 0 name b isChecked false availibility 0
  • Android ndk 上 OpenGLES 1.1 中具有 GLSurfaceView 模式的 FrameBuffer

    在 Android NDK 中 是否可以使 OpenGL ES 1 1 使用典型的 java 端 GLSurfaceView 模式 覆盖 GLSurfaceView Renderer onDrawFrame onSurfaceCreated
  • 不要在提交表单时重定向

    我有一个简单的基于 HTML 的表单 如下所示 它会在单击时不断刷新页面
  • 我可以将跨站点 标记的数据作为 blob 获取吗?

    我正在尝试将网页链接到的几个图像保存到离线存储中 我在 Firefox 上使用 IndexedDB 在 Chrome 上使用 FileSystem API 我的代码实际上是一个扩展 因此在 Firefox 上我在 Greasemonkey
  • Mangle dll 使用 DEF 文件导出名称

    我正在尝试创建一个代理 dll 并遇到了这个问题 假设我有以下文件 a cpp extern C int declspec dllexport func int x return x a def EXPORTS func 4Test QAE
  • 使用Scrapy爬取本地XML文件-Start URL本地文件地址

    我想用 scrapy 抓取我位于下载文件夹中的本地 xml 文件 使用 xpath 提取相关信息 使用 scrapy 介绍作为guide 2016 01 24 12 38 53 scrapy DEBUG Retrying
  • 数据成员 int 引用

    我试图通过引用将 int 存储为类的数据成员 我预计对象会通过引用获取 int 而不是如果我从外部增加引用 则会增加对象内部的值 class A private int x public A int y x y cout lt lt A s
  • LLVM insertvalue 优化不佳?

    当我发出 LLVM 代码时 是否应该避免将 insertvalue 指令与加载和存储结合使用 当我使用它时 我总是得到糟糕的优化本机代码 看下面的例子 ModuleID mod target datalayout e p 64 64 64
  • 如何编码 WAV 以使用 SIPp 播放

    通过观察另一个SIPp相关问题我了解到现在可以使用rtp stream action 我尝试了几个不同的 WAV 文件 但没有成功 我听到的只是一些噪音 而不是预期的声音 在上述问题的一条评论中 有一条简单的指令将 WAV 文件转换为兼容格
  • SQL Server表默认是排序的

    我有一个简单的 SSIS 包 可以将平面文件中的数据导入到 SQL Server 表 SQL Server 005 中 文件包含 70k 行 表没有主键 导入成功 但是当我打开 SQL Server 表时 行的顺序与文件的顺序不同 仔细观察
  • SwiftUI TabView 在添加/删除 CoreData 元素期间给出错误消息

    我目前正在尝试将 TabView 与 CoreData 一起用于轮播视图 PageTabViewStyle 当我按如下顺序添加新页面时 不会发生错误 age name 3 page name 4 page name 5 但是 如果我将数字放