listless

A simple list app for Apple platforms
Log | Files | Refs | README | LICENSE

commit 355e713aff031c0e678b8774d9575738ab5998b3
parent 3b7e30f4a3f9fae5be4464314b1f9bf054e56e18
Author: Michael Camilleri <[email protected]>
Date:   Wed, 25 Feb 2026 16:24:48 +0900

Use setPrimitiveValue

Co-Authored-By: Codex GPT 5.3 <[email protected]>

Diffstat:
MListless/Sync/PersistenceController.swift | 6++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/Listless/Sync/PersistenceController.swift b/Listless/Sync/PersistenceController.swift @@ -29,11 +29,13 @@ private final class UpdatedAtMergePolicy: NSMergePolicy { guard storeUpdatedAt > localUpdatedAt else { continue } // Persisted values are newer; copy them onto the object to resolve conflict. + // Use setPrimitiveValue to bypass KVC change tracking so willSave() does not + // see these keys in changedValues() and overwrite updatedAt with Date(). for (key, value) in persistedSnapshot { if value is NSNull { - task.setValue(nil, forKey: key) + task.setPrimitiveValue(nil, forKey: key) } else { - task.setValue(value, forKey: key) + task.setPrimitiveValue(value, forKey: key) } } }