使用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了解更多信息.)
您将看到SQL语句绑定到的所有值.
示例输出:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。