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>()
|
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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user