使用Core Data sql Debug时如何打印发送到sqlite数据库的值?
在我的“通过启动的参数”调试选项中使用“-com.apple.CoreData.sqlDebug 1”打印sql结构
(您可以查看如何使用这里:XCode4 and Core Data: How to enable SQL Debugging)
但问题是NSLog打印的东西就像UPDATE ZTABLE SET ZCOLUMN =? WHERE ZID =?如果您正在尝试查看发送到数据库的完整sql语句和/或数据是什么,那根本就没有帮助.
解决方法
在Xcode中打开“产品 – >方案 – >编辑方案…”并添加
到“通过发射的论据”:
到“通过发射的论据”:
-com.apple.CoreData.sqlDebug 3 -com.apple.CoreData.Logging.stderr 1
(Core Data调试需要第二个启动参数
iOS 10 / macOS 10.12或更高版本,请参阅com.apple.CoreData.SQLDebug not working了解更多信息.)
test56[1588:c07] CoreData: sql: BEGIN EXCLUSIVE test56[1588:c07] CoreData: sql: INSERT INTO ZEVENT(Z_PK,Z_ENT,Z_OPT,ZTIMESTAMP) VALUES(?,?,?) test56[1588:c07] CoreData: details: sqlite bind[0] = (int64)13 test56[1588:c07] CoreData: details: sqlite bind[1] = (int64)1 test56[1588:c07] CoreData: details: sqlite bind[2] = (int64)1 test56[1588:c07] CoreData: details: sqlite bind[3] = "368650709.435904" test56[1588:c07] CoreData: sql: COMMIT