cleanup warnings

This commit is contained in:
John Estropia
2026-07-29 13:56:43 +09:00
parent 802065e85a
commit 838637f29f
2 changed files with 16 additions and 9 deletions
+15 -8
View File
@@ -72,7 +72,7 @@ public final class ObjectMonitor<O: DynamicObject>: Hashable, ObjectRepresentati
- parameter observer: an `ObjectObserver` to send change notifications to - parameter observer: an `ObjectObserver` to send change notifications to
*/ */
@MainActor @MainActor
public func addObserver<U: ObjectObserver & Sendable>(_ observer: U) public func addObserver<U: ObjectObserver>(_ observer: U)
where U.ObjectEntityType == O { where U.ObjectEntityType == O {
self.unregisterObserver(observer) self.unregisterObserver(observer)
@@ -261,7 +261,7 @@ public final class ObjectMonitor<O: DynamicObject>: Hashable, ObjectRepresentati
} }
@MainActor @MainActor
internal func registerObserver<U: AnyObject & Sendable>( internal func registerObserver<U: AnyObject>(
_ observer: U, _ observer: U,
willChangeObject: @escaping @Sendable ( willChangeObject: @escaping @Sendable (
_ observer: U, _ observer: U,
@@ -285,13 +285,17 @@ public final class ObjectMonitor<O: DynamicObject>: Hashable, ObjectRepresentati
Thread.isMainThread, Thread.isMainThread,
"Attempted to add an observer of type \(Internals.typeName(observer as AnyObject)) outside the main thread." "Attempted to add an observer of type \(Internals.typeName(observer as AnyObject)) outside the main thread."
) )
nonisolated(unsafe) weak let weakObserver = observer as Optional
self.registerChangeNotification( self.registerChangeNotification(
&self.willChangeObjectKey, &self.willChangeObjectKey,
name: Notification.Name.objectMonitorWillChangeObject, name: Notification.Name.objectMonitorWillChangeObject,
toObserver: observer, toObserver: observer,
callback: { [weak observer] (monitor) -> Void in callback: { (monitor) -> Void in
guard let object = monitor.object, let observer = observer else { guard
let observer = weakObserver,
let object = monitor.object
else {
return return
} }
@@ -302,9 +306,9 @@ public final class ObjectMonitor<O: DynamicObject>: Hashable, ObjectRepresentati
&self.didDeleteObjectKey, &self.didDeleteObjectKey,
name: Notification.Name.objectMonitorDidDeleteObject, name: Notification.Name.objectMonitorDidDeleteObject,
toObserver: observer, toObserver: observer,
callback: { [weak observer] (monitor, object) -> Void in callback: { (monitor, object) -> Void in
guard let observer = observer else { guard let observer = weakObserver else {
return return
} }
@@ -315,9 +319,12 @@ public final class ObjectMonitor<O: DynamicObject>: Hashable, ObjectRepresentati
&self.didUpdateObjectKey, &self.didUpdateObjectKey,
name: Notification.Name.objectMonitorDidUpdateObject, name: Notification.Name.objectMonitorDidUpdateObject,
toObserver: observer, toObserver: observer,
callback: { [weak self, weak observer] (monitor, object) -> Void in callback: { [weak self] (monitor, object) -> Void in
guard let self = self, let observer = observer else { guard
let self = self,
let observer = weakObserver
else {
return return
} }
+1 -1
View File
@@ -36,7 +36,7 @@ import CoreData
monitor.addObserver(self) monitor.addObserver(self)
``` ```
*/ */
public protocol ObjectObserver: AnyObject, Sendable { public protocol ObjectObserver: AnyObject, SendableMetatype {
/** /**
The `DynamicObject` type for the observed object The `DynamicObject` type for the observed object