- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在我的 init()
中执行 CoreData 获取 View 的方法。我没有在 SwiftUI 中使用 FetchRequest,因为我需要一个基于参数的谓词,该参数也发送到 View 。在@FetchRequest 中使用该参数会导致错误,因为该变量尚未初始化。
我正在 init() 中执行以下 fetch Request
//FetchRequest
let fetch : NSFetchRequest<Article>
self.articleRows = [Article]()
fetch = Article.fetchRequest() as! NSFetchRequest<Article>
fetch.predicate = NSPredicate(format: "type == %d", self.type)
do {
self.articleRows = try NSManagedObjectContext.current.fetch(fetch)
} catch
{
}
那工作正常。我在
ForEach
中显示我的所有数据环形。
ForEach(self.articleRows, id:\.self) { article in
但是,当我从上下文中删除实体时,我需要刷新 View 以显示更改。在删除操作时,我切换
@State
变量,刷新 View 。这有效,但是实体仍在我的数组中。那是因为
init()
不会再次调用并且不会再次发出获取请求。如
init()
将被调用,被删除的实体将不再存在。
Binding
在我的 Fetch View 中。如果我进行更改,我会切换该绑定(bind)并重新加载我的父 View 。这将导致我的 subview (获取 View )也重新加载并再次发出获取请求。这是最好的方法吗?任何更简单的解决方案?
最佳答案
所以,我找到了解决我的问题的方法。
出了什么问题?
View 没有更新,因为我没有使用 FetchRequest 属性包装器,因为我需要在该 FetchRequest 中有一个实例变量。所以我需要在我的 Init()
里面做 Fetching方法。但我所做的是,我只是在 init()
中取了一次我的元素。除非重新加载父级,否则不会更新。
如何在不烦人的父更新的情况下解决它?
而不是在 init()
中只进行一次手动获取我使用了 FetchRequest 并在 init() 中对其进行了初始化,因此它仍然表现为 FetchRequest 属性包装器,就像一个 Observable 对象。
我是这样声明的:
@FetchRequest var articleRows : FetchedResults<Article>
而在
init()
里面
//Here in my predicate I use self.type variable
var predicate = NSPredicate(format: "type == %d", self.type)
//Intialize the FetchRequest property wrapper
self._articleRows = FetchRequest(entity: Article.entity(), sortDescriptors: [], predicate: predicate)
关于core-data - SwiftUI - 如何在 init 中使用 fetchRequest 更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62636252/
Xcode beta 5 推出 @FetchRequest对于 SwiftUI。 我有一个 View ,它有一个 @FetchRequest . NSFetchRequest是在管理器中创建的,该管理
带有实体 Node 的核心数据模型有 name , createdAt , 多对多关系 children和一对一的关系parent (都是可选的)。使用 CodeGen 类定义。 使用 @FetchR
我试图将我的@fetchrequest属性移到辅助类,而不是View,但是每次尝试这样做时,都会收到一条错误的指令错误。 谁能帮我? 这是我的代码的示例: ViewModel: class ViewM
我的 SwiftUI 项目中有以下代码 @FetchRequest private var step: FetchedResults private var processID: UUID priva
我有一个使用 @FetchRequest 显示来自 CoreData 的对象的列表,我想为用户提供一个栏按钮,单击该按钮将过滤显示的列表。如何更改 @FetchRequest 谓词并动态重新运行它以使
我的 SwiftUI 项目中有以下代码 @FetchRequest private var step: FetchedResults private var processID: UUID priva
当我向 CoreData 的一个实体插入数据时,所有行均已成功插入(已保存)。 但是当我尝试使用 FetchRequest 获取数据时,即使插入的行数为 3 或 4 或任何值(超过 1),也只会收到一
更新以下问题:我们能够通过父子关系使用父实体获取请求来查询子实体。示例查询如下: NSPredicate *myPredicate = [NSPredicate predicateWithForm
我正在尝试从我的数据库中获取请求。但我的回应为零。获取是可以的,因为当我使用这种方法时,我得到“有时”值。 (我知道我在数据库中有数据)。我认为这在某种程度上与线程问题有关,或者因为我正在使用多上下文
如何按土耳其语对 fetchResult 进行排序,土耳其语字符在结果末尾排序。 let managedObjectContext = (UIApplication.shared.delegate a
我有一个扩展 NSManagedObject 的静态函数得到这样的对象...... NSManagedObject.get(type: MYUser.self, with: ("id", "SomeU
使用方法 @FetchRequest为了检索单个对象而不是 FetchedResults ?在我看来,我只需要一个对象。是否有另一种方法来执行查询并根据唯一的属性值(例如 ID)获取单个对象? str
我有一组数据,其中一个属性(固件)是一对多关系。 如果我想获取固件 id 为 1 的任何记录,我可以使用创建谓词 @"(ANY Firmware.FID==1)" 然后我有另一组条件,可以使用进一步细
在我的应用程序中,我有两个 CoreData 实体,它们的关系是一对多的:人物 -> 主题 我正在使用列表呈现人们的名字 struct PeopleListView: View { @Fetc
我有 2 个实体: 出席: import Foundation import CoreData extension Attendance { @NSManaged var date: NSDa
更新说明:我正在使用 Big Nerd Ranch CoreDataStack如果你们想知道的话。 我已经为这个具体问题苦苦挣扎了一段时间了。基本上我试图从 CNContactStore 获取联系人并
我正在尝试找到一种方法来预测给定日期第一次发生的事件。假设一个事件在一天中发生多次(范围 1-16),我只希望它返回第一次出现的事件,然后在第二天查找下一个第一次出现的事件。 最佳答案 您无法通过一个
所以我有两个实体。列表和评论。一个列表可以有多个关联的评论。 extension Listing { @NSManaged var listingTitle: String? @NSM
我在尝试过滤 fetchRequest 时脑子崩溃了。 我能够获取实体每条记录的完整详细信息,但我只想要当前 indexPath 处记录的详细信息。 这是我的代码目前所在的位置: -(void) fe
我正在尝试获取按其属性之一(单词)过滤的实体列表,为此我使用了 fetchedResultsController,一切看起来都正常。该列表已加载并显示在我的 tableView 上,我什至可以对列表进
我是一名优秀的程序员,十分优秀!