我正在 OSX 11.11 上使用 Xcode 7 和 swift - 我看过一些教程,这些教程讲述了使用调试构建标志调试核心数据的 SQL 语句。我找到了this这没有给我任何额外的信息。
标志是 com.apple.CoreData.SQLDebug,这就是我尝试在“编辑方案”菜单的“启动时传递的参数”中输入它的方式:
-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 { ...}
关于xcode - com.apple.CoreData.SQLDebug 标志不显示 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33225229/