我正在创建一个简单的核心数据应用程序,代码上没有错误,但是在预览中或在物理设备上运行时,它在启动时崩溃。日志是
CrashOnLaunchError:AppName应用在启动时崩溃
更新预览时,应用“ AppName”崩溃。在〜/ Library / Logs / DiagnosticReports中查找崩溃日志以获取更多详细信息。
在物理设备上运行时,在类定义的AppDelegate中 xcode引发线程1:“ NSFetchedResultsController的实例需要具有排序描述符的提取请求”
Error Domain = FBSOpenApplicationServiceErrorDomain代码= 1“请求 打开“ com.company.AppName”失败。” UserInfo = {BSErrorCodeDescription = RequestDenied, NSLocalizedDescription =打开“ com.company.AppName”的请求 失败。,NSUnderlyingError = 0x7f89753f7aa0 {Error Domain = SketchBoard 代码= 1“应用程序无法启动” UserInfo = {NSLocalizedDescription =应用程序无法启动, NSLocalizedFailureReason =该操作无法完成。 交易失败。子交易失败:
(子级 交易),NSUnderlyingError = 0x7f8975356fd0 {错误 Domain = BSTransactionError Code = 1“交易失败。孩子 事务失败: (子交易)” UserInfo = {NSLocalizedFailureReason =交易失败。儿童 事务失败: (子事务),precipitating-error =错误 Domain = BSTransactionError Code = 1“交易失败。孩子 事务失败: (子级 交易)“ UserInfo = {NSLocalizedFailureReason =交易失败。 子事务失败: (子交易),precipitating-error =错误 Domain = BSTransactionError Code = 1“交易失败。场景更新 失败(场景更新失败)” UserInfo = {NSLocalizedFailureReason =交易失败。场景更新 失败(场景更新失败),error-reason =场景更新失败, error-description =场景更新失败, transaction = }, 错误原因=子事务,错误描述=子事务 失败: , transaction = }, 错误原因=子事务,错误描述=子事务 失败: , transaction = }}}}, FBSOpenApplicationRequestID = 0xddf3,NSLocalizedFailureReason = The 服务代表拒绝了该请求 (SketchBoard.SketchBoardSystemService)。}
重新启动计算机和XCODE后,显示另一个错误
AppLaunchTimeoutError:无法启动应用程序“ PreviewAgentBundle(标识符:“ com.company.AppName”,URL:file:/// Users / UserName / Library / Developer / Xcode / DerivedData / AppName%3F-fnttuytzfpshkcdpkeevdewzrypc / Build / Intermediates .noindex / Previews / AppName%3F / Products / Debug-iphonesimulator / AppName%3F.app,executableSubpath:“ AppName”,版本:AnyHashable(9781),signingInformation:可选(UVPreviewPipeline.CodeSigningInformation(标识符:Optional(“ com.company .AppName“),标识:无,hasGetTaskAllow:false,isSandboxed:false)))”“在合理的时间
应用程序“ PreviewAgentBundle(标识符:“ com.company.AppName”,网址:file:///Users/UserName/Library/Developer/Xcode/DerivedData/AppName%3F-fnttuytzfpshkcdpkeevdewzrypc/Build/Intermediates.noindex/Previews /Appname%3F/Products/Debug-iphonesimulator/AppName%3F.app,executableSubpath:“AppName”,版本:AnyHashable(9781),signingInformation:可选(UVPreviewPipeline.CodeSigningInformation(标识符:Optional(“ com.company.AppName”)) ,身份:零,hasGetTaskAllow:假,isSandboxed:假)))”在15秒钟内未在“ iPhone 11 Pro Max”上启动。
捆绑包标识符:com.company.AppName 设备UDID:UUID 请求UUID:UUID screenID:0
我有3页,
内容视图
import SwiftUI
struct ContentView: View {
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(fetchRequest: PostCodeCore.getPostcode()) var postCodes:FetchedResults<PostCodeCore>
@State private var enteredPostcode = ""
var body: some View {
NavigationView {
Button(action: {
TextField("Postcode", text: self.$enteredPostcode)
let postCodeCore = PostCodeCore(context: self.managedObjectContext)
postCodeCore.postcodeObject = self.enteredPostcode
do {
try self.managedObjectContext.save()
}catch{
print(error)
}
self.enteredPostcode = ""
}) {
Text("Proceed")
}
ForEach(self.postCodes) {PostCodeCore in
PostCodeView(postcode: PostCodeCore.postcodeObject!)
}
}.navigationBarTitle("Hello")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
PostCodeView
import Foundation
import SwiftUI
struct PostCodeView: View {
var postcode: String = ""
var body: some View {
Text(postcode)
}
}
struct PostCodeView_Previews: PreviewProvider {
static var previews: some View {
PostCodeView(postcode: "WD6 3PU")
}
}
和PostCodeCore
import Foundation
import CoreData
public class PostCodeCore:NSManagedObject, Identifiable {
@NSManaged public var postcodeObject:String?
}
extension PostCodeCore {
static func getPostcode() -> NSFetchRequest<PostCodeCore> {
let request:NSFetchRequest<PostCodeCore> = PostCodeCore.fetchRequest() as! NSFetchRequest<PostCodeCore>
return request
}
}
和我的XCDataModel看起来像这样 https://imgur.com/a/xOV5U3f
任何帮助将不胜感激, 谢谢