swift - API滥用: Attempt to serialize store access on non-owning coordinator - with Assets. xcassets

标签 swift xcode exception core-data swiftui

您好,如果我将 SwiftUI 实现到我的应用程序中(目前基于 Storyboard),我会收到错误。我制作了一个 SwiftUI 文件,我还可以在我的应用程序中显示我的 SwiftUI View 。但是,如果我尝试在 SwiftUI 文件的 XCode 中进行预览,则会收到以下错误:

Showing All Messages
CompileAssetCatalog /Users/n0name/Library/Developer/Xcode/DerivedData/MediaApp-auxosshpupveyzcyqpenlftpfxti/Build/Intermediates.noindex/Previews/MediaApp/Products/Debug-iphonesimulator/MediaApp.app /Users/n0name/Desktop/sevdaDev/MediaApp/MediaApp/MediaApp/Assets.xcassets (in target 'MediaApp' from project 'MediaApp')
    cd /Users/n0name/Desktop/sevdaDev/MediaApp/MediaApp
    /Applications/Xcode.app/Contents/Developer/usr/bin/actool --output-format human-readable-text --notices --warnings --export-dependency-info /Users/n0name/Library/Developer/Xcode/DerivedData/MediaApp-auxosshpupveyzcyqpenlftpfxti/Build/Intermediates.noindex/Previews/MediaApp/Intermediates.noindex/MediaApp.build/Debug-iphonesimulator/MediaApp.build/assetcatalog_dependencies --output-partial-info-plist /Users/n0name/Library/Developer/Xcode/DerivedData/MediaApp-auxosshpupveyzcyqpenlftpfxti/Build/Intermediates.noindex/Previews/MediaApp/Intermediates.noindex/MediaApp.build/Debug-iphonesimulator/MediaApp.build/assetcatalog_generated_info.plist --app-icon AppIcon --compress-pngs --enable-on-demand-resources YES --development-region en --target-device iphone --target-device ipad --minimum-deployment-target 13.4 --platform iphonesimulator --compile /Users/n0name/Library/Developer/Xcode/DerivedData/MediaApp-auxosshpupveyzcyqpenlftpfxti/Build/Intermediates.noindex/Previews/MediaApp/Products/Debug-iphonesimulator/MediaApp.app /Users/n0name/Desktop/sevdaDev/MediaApp/MediaApp/MediaApp/Assets.xcassets

2021-06-17 15:51:57.997 ibtoold[28465:1115997] DEBUG: Added to environment: {
    TMPDIR = "/var/folders/5v/p26rjcc50bxcjkcj8h4z2tq40000gn/T/C9D47C23-18B9-48A8-BE11-80115C363851";
}
CoreData: error:  API Misuse: Attempt to serialize store access on non-owning coordinator (PSC = 0x7fe52157bef0, store PSC = 0x0)
CoreData: error:  API Misuse: Attempt to serialize store access on non-owning coordinator (PSC = 0x7fe52157bef0, store PSC = 0x0)
2021-06-17 15:52:09.204 IBCocoaTouchImageCatalogTool[28466:1116234] *** Assertion failure in -[CoreThemeDocument metadatumForKey:], CoreThemeDocument.m:8011
2021-06-17 15:52:09.205 IBCocoaTouchImageCatalogTool[28466:1116234] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[CoreThemeDocument metadatumForKey] expects exactly one persistent store, but got 0.'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff20422fba __exceptionPreprocess + 242
    1   libobjc.A.dylib                     0x00007fff20193ff5 objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff20422de3 +[NSException raise:format:] + 0
    3   Foundation                          0x00007fff207748e7 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 191
    4   CoreThemeDefinition                 0x00007fff4cc7b7b5 -[CoreThemeDocument metadatumForKey:] + 205
    5   CoreThemeDefinition                 0x00007fff4cc7ca4b -[CoreThemeDocument allowsExtendedRangePixelFormats] + 29
    6   CoreThemeDefinition                 0x00007fff4cca1c1e -[TDSimpleArtworkRenditionSpec createCSIRepresentationWithCompression:colorSpaceID:document:] + 5410
    7   CoreThemeDefinition                 0x00007fff4ccac5f0 __34-[TDRenditionsDistiller _distill:]_block_invoke + 120
    8   CoreData                            0x00007fff250d323a developerSubmittedBlockToNSManagedObjectContextPerform + 154
    9   libdispatch.dylib                   0x00007fff201078df _dispatch_client_callout + 8
    10  libdispatch.dylib                   0x00007fff2010de15 _dispatch_lane_serial_drain + 715
    11  libdispatch.dylib                   0x00007fff2010e98c _dispatch_lane_invoke + 400
    12  libdispatch.dylib                   0x00007fff20118f81 _dispatch_workloop_worker_thread + 772
    13  libsystem_pthread.dylib             0x00007fff6034045d _pthread_wqthread + 314
    14  libsystem_pthread.dylib             0x00007fff6033f42f start_wqthread + 15
)
libc++abi: terminating with uncaught exception of type NSException

问题是我不知道为什么会出现这个错误。如果我在模拟器上运行我的应用程序,我不会看到任何这样的错误。这个错误不会出现在模拟器中,嗯?

上述代码出现在日志中的“显示所有消息 CompileAssetCatalog” 步骤中。因为此步骤中发生了错误,所以我认为它可能与我正在使用的资源(图像和矢量图形)有某种关系。因此,我删除了除“AppIcon”之外的整个资源文件,并尝试再次在 XCode 中运行预览,它确实有效!!。但是我不知道为什么我的 Assets 与“NSObjectManager”或“PersistentContainer”“CoreData”以及我重定向的其他线程问题有关,如果我搜索同样的错误。例如,其中一篇文章是这样的:FetchedResultsController Swift 3 API Misuse: Attempt to serialize store access on non-owning coordinator

但我不使用“持久容器”等复杂的东西。我只使用 userDefaults 中的一些键,这些键被保存在那里并被检索。我也使用 Firebase。老实说,我对线程和并发不太了解。 那么有人可以解释一下为什么会发生这个错误以及为什么我会得到这样的奇怪行为吗?为什么我的简单图像和矢量资源会导致这样的问题???

我询问了一位也在从事同一项目的同事,如果她尝试打开新创建的 SwiftUI View 的预览,她会得到相同的结果。

最佳答案

当我第一次阅读这个问题时,我没有意识到这是一个编译器错误 - 我认为这是在应用程序运行时发生的。

当编译器出现这样的错误(表明发生崩溃)时,这是编译器中的错误。总是。那绝对不应该发生。从您的评论来看,您的 JSON 文件似乎触发了此错误。我不知道该 JSON 文件是否有什么奇怪的地方,或者 Xcode 是否不喜欢在 Assets 目录中包含 JSON。不管怎样,这都是一个 Xcode 错误,因为在最坏的情况下,Xcode 应该告诉您不要将 JSON 文件放在那里,而不是这样做。

很高兴听到您找到了解决方法。这不是您可以实际修复的问题,但如果您的解决方法满足您的需要,那么就足够接近了。 Apple 可以修复此问题,因此我建议访问 https://feedbackassistant.apple.com并提交有关此的错误。

关于swift - API滥用: Attempt to serialize store access on non-owning coordinator - with Assets. xcassets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68022299/

相关文章:

javascript - 解析 : Can a user create another user?

ios - 如何通过 Swift 连接到本地 Firebase 服务器?

objective-c - ConvertRect 占 UIScrollView 缩放和 contentOffset

Java异常处理用户输入

c# - Entity Framework v5 候选版本在模型中使用枚举时抛出异常

ios - 使用 findObjectsInBackgroundWithTarget 时,调用中参数 #1 缺少实参

iOS swift : Returning a 'Bool' in a function that shows alert confirmation message

ios - AudioKit v4.2 上的 AKRhodesPiano 错误(挤压)

xcode - 如何将 Xcode 项目类型从 Cocoa 框架转换为 Cocoa 应用程序?

c# - 如何捕获第三方库中未等待的任务抛出的异常?