Swift 访问 SwiftUI Init() 中的核心数据实体? (线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
Posted
技术标签:
【中文标题】Swift 访问 SwiftUI Init() 中的核心数据实体? (线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)【英文标题】:Swift accessing core data entities in SwiftUI Init()? (Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) 【发布时间】:2020-05-15 17:27:40 【问题描述】:我有一个名为 Solve 的核心数据实体,我正在尝试从获取请求中获取第一个元素,并将其设置为我的 init() 函数中的一个变量。
var fetchRequestAvgerage:FetchRequest<Solve>
var solve0 = Solve()
init()
let request: NSFetchRequest<Solve> = Solve.fetchRequest()
request.sortDescriptors = [NSSortDescriptor(keyPath: \Solve.date, ascending: false)]
fetchRequestAvgerage = FetchRequest<Solve>(fetchRequest: request)
solve0 = fetchRequestAvgerage.wrappedValue.first!
但是程序在Solve0 = fetchRequestAvgerage.wrappedValue.first!
行崩溃了,我也尝试设置一个可选值,但它仍然崩溃并给出错误代码 Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0.)
有谁知道我如何从我的 init() 函数中的核心数据中获取一个实体并将其设置为变量?谢谢!
【问题讨论】:
【参考方案1】:fetchRequestAvgerage.wrappedValue
在init
中还没有,在.onAppear
中使用它,喜欢
struct Demo: View
var fetchRequestAvgerage:FetchRequest<Solve>
var solve0 = Solve()
init()
let request: NSFetchRequest<Solve> = Solve.fetchRequest()
request.sortDescriptors = [NSSortDescriptor(keyPath: \Solve.date, ascending: false)]
fetchRequestAvgerage = FetchRequest<Solve>(fetchRequest: request)
var body: some View
Text("Demo")
.onAppear
self.solve0 = fetchRequestAvgerage.wrappedValue.first ?? Solve()
【讨论】:
@JFoss,不客气。 What should I do when someone answers my question?以上是关于Swift 访问 SwiftUI Init() 中的核心数据实体? (线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)的主要内容,如果未能解决你的问题,请参考以下文章
如何构造值以使所有视图都可以在 Swift/SwiftUI 中访问其值?
SwiftUI ListView 没有访问 ForEach 循环