← All repositories

listless

A simple list app for Apple platforms

git clone https://code.inqk.net/listless.git


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)
                 }
             }
         }