2015-10-19 69 views
0

我在OSX 11.11上使用Swift编译Xcode 7 - 我已经看过一些关于使用调试构建标志调试核心数据的SQL语句的教程。我找到了this,它没有给我任何额外的信息。com.apple.CoreData.SQLDebug标志不显示SQL

的标志是com.apple.CoreData.SQLDebug,这是怎么了,我试图在“编辑计划”菜单,进入它,在“在启动传递的参数”:

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

我已确认我的CocoaAppCD.storedata文件中包含项目 - 它没有显示sql语句的任何原因?

+0

你有没有检查,调试标志是否启用(其左侧的复选框已激活)?你在使用NSSQLiteStoreType吗?你保存你的NSManagedObjectContexts吗?您是否将SQLDebug参数添加到运行配置或其他配置? – Palle

+0

1.启用。我不知道我是否使用SQLiteStoreType,它的默认值是什么 - 它保存的文件是.storedata,所以可能不是。我从博客上看过(可能是错误的),它使用SQL作为后端。 3.调试配置。 :-) – jQwierdy

回答

0

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

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

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