ios – 如何打印Core Data调试值?

前端之家收集整理的这篇文章主要介绍了ios – 如何打印Core Data调试值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用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

猜你在找的iOS相关文章