Open "Product -> Scheme -> Edit Scheme..." in Xcode and add
to "Arguments Passed on Launch":
-com.apple.CoreData.SQLDebug 3
-com.apple.CoreData.Logging.stderr 1
(The second launch argument is needed for Core Data debugging on
iOS 10/macOS 10.12 or later, see com.apple.CoreData.SQLDebug not working for more information.)
The you'll see all the values that the SQL statements are bound to.
Example output:
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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…