【问题标题】:com.apple.CoreData.SQLDebug flag is not displaying SQLcom.apple.CoreData.SQLDebug 标志未显示 SQL
【发布时间】:2015-10-19 22:47:56
【问题描述】:

我在 OSX 11.11 上使用带有 swift 的 Xcode 7 - 我查看了一些关于使用调试构建标志调试核心数据的 SQL 语句的教程。我找到了this,它没有给我任何其他信息。

标志是 com.apple.CoreData.SQLDebug,这就是我尝试在“编辑方案”菜单中的“启动时传递的参数”中输入它的方式:

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

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

【问题讨论】:

  • 您是否检查过调试标志已启用(左侧的复选框已激活)?你在使用 NSSQLiteStoreType 吗?你在保存你的 NSManagedObjectContexts 吗?您是否将 SQLDebug 参数添加到运行配置或其他配置?
  • 1.它已启用。我不知道我是否使用 SQLiteStoreType,它是默认值 - 它保存到的文件是 .storedata,所以可能不是。我从一个博客中读到(可能是错误的)它使用 SQL 作为后端。 3.调试配置。 :-)

标签: xcode swift core-data xcode7 osx-elcapitan


【解决方案1】:

根据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 { ...}

【讨论】:

    猜你喜欢
    • 2021-04-24
    • 2017-01-18
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多