com.apple.CoreData.SQLDebug 标志未显示 SQL

com.apple.CoreData.SQLDebug flag is not displaying SQL

我在 OSX 11.11 上使用 Xcode 7 和 swift - 我看过一些关于调试核心数据 SQL 的教程带有调试构建标志的语句。我发现 this 没有提供任何额外信息。

标志是 com.apple.CoreData.SQLDebug,这是我尝试在 'Edit Scheme' 菜单中输入它的方式,在 'arguments passed on launch':

-com.apple.CoreData.SQLDebug 1 我已经尝试了 1 和 3,我也遇到了一个旧博客,其中 -~ 切换了,我也试过了,但是调试控制台上仍然没有打印 SQL。

我已经确认我的 CocoaAppCD.storedata 文件中有项目 - 为什么它没有显示 sql 语句?

根据 this answer,仅当您使用 NSXMLStoreType 时才会生成 .storedata 文件。 NSXMLStoreType 似乎也是默认值。如果您使用的是 NSXMLStoreType,则 SQLDebug 标志无效,因为它仅适用于 NSSQLiteStoreType。

您可以通过将这种类型的持久存储而不是 XML 存储添加到您的 NSPersistentStoreCoordinator 来使用 NSSQLiteStoreType(如果您的 CoreData 代码是由 Xcode 生成的,这将在您的 AppDelegate 中):

do {
    try coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
} catch { ...}