fix(desktop): iterate Photos persistent changes as a sequence

PHPersistentChangeFetchResult has no enumerateChanges; it is a Swift sequence.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NLSCTnhge4umMnemGXWr1w
This commit is contained in:
Claude 2026-10-03 18:31:45 +00:00
parent 44396969fc
commit 87d5be4daf
No known key found for this signature in database

View File

@ -69,20 +69,13 @@ struct Library {
var deleted = Set<String>() var deleted = Set<String>()
do { do {
let result = try library.fetchPersistentChanges(since: token) let result = try library.fetchPersistentChanges(since: token)
var detailsError: Error? for change in result {
result.enumerateChanges { change, stop in let details = try change.changeDetails(for: PHObjectType.asset)
do { changed.formUnion(details.insertedLocalIdentifiers)
let details = try change.changeDetails(for: .asset) changed.formUnion(details.updatedLocalIdentifiers)
changed.formUnion(details.insertedLocalIdentifiers) deleted.formUnion(details.deletedLocalIdentifiers)
changed.formUnion(details.updatedLocalIdentifiers) if changed.count + deleted.count > Limits.maxChanges { break }
deleted.formUnion(details.deletedLocalIdentifiers)
if changed.count + deleted.count > Limits.maxChanges { stop.pointee = true }
} catch {
detailsError = error
stop.pointee = true
}
} }
if let detailsError { throw detailsError }
} catch let error as PHPhotosError } catch let error as PHPhotosError
where error.code == .persistentChangeTokenExpired where error.code == .persistentChangeTokenExpired
|| error.code == .persistentChangeDetailsUnavailable || error.code == .persistentChangeDetailsUnavailable