mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-09-09 19:31:55 +02:00
cleanup warnings
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user