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:
parent
44396969fc
commit
87d5be4daf
@ -69,20 +69,13 @@ struct Library {
|
||||
var deleted = Set<String>()
|
||||
do {
|
||||
let result = try library.fetchPersistentChanges(since: token)
|
||||
var detailsError: Error?
|
||||
result.enumerateChanges { change, stop in
|
||||
do {
|
||||
let details = try change.changeDetails(for: .asset)
|
||||
changed.formUnion(details.insertedLocalIdentifiers)
|
||||
changed.formUnion(details.updatedLocalIdentifiers)
|
||||
deleted.formUnion(details.deletedLocalIdentifiers)
|
||||
if changed.count + deleted.count > Limits.maxChanges { stop.pointee = true }
|
||||
} catch {
|
||||
detailsError = error
|
||||
stop.pointee = true
|
||||
}
|
||||
for change in result {
|
||||
let details = try change.changeDetails(for: PHObjectType.asset)
|
||||
changed.formUnion(details.insertedLocalIdentifiers)
|
||||
changed.formUnion(details.updatedLocalIdentifiers)
|
||||
deleted.formUnion(details.deletedLocalIdentifiers)
|
||||
if changed.count + deleted.count > Limits.maxChanges { break }
|
||||
}
|
||||
if let detailsError { throw detailsError }
|
||||
} catch let error as PHPhotosError
|
||||
where error.code == .persistentChangeTokenExpired
|
||||
|| error.code == .persistentChangeDetailsUnavailable
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user