diff --git a/Sources/ExtensionKit/CoreLocation/AuthorizationPublisher.swift b/Sources/ExtensionKit/CoreLocation/AuthorizationPublisher.swift index a5193fb..f220f85 100644 --- a/Sources/ExtensionKit/CoreLocation/AuthorizationPublisher.swift +++ b/Sources/ExtensionKit/CoreLocation/AuthorizationPublisher.swift @@ -14,8 +14,7 @@ protocol SubscriptionAuthorizationDelegate: class { final class AuthorizationSubscription : NSObject, PublisherAuthorizationDelegate, Subscription where S.Input == CLAuthorizationStatus, - S.Failure == Never { - + S.Failure == Never { typealias Output = CLAuthorizationStatus typealias Failure = Never @@ -32,6 +31,10 @@ final class AuthorizationSubscription : NSObject, self.delegate = delegate self.authorizationType = authorizationType } + + deinit { + printDeinitMessage() + } func request(_ demand: Subscribers.Demand) { delegate?.requestAuthorization(type: authorizationType) @@ -42,6 +45,8 @@ final class AuthorizationSubscription : NSObject, delegate = nil } + // MARK: - PublisherAuthorizationDelegate + func send(status: CLAuthorizationStatus) { _ = subscriber?.receive(status) } @@ -65,6 +70,10 @@ final class AuthorizationPublisher: NSObject, super.init() self.manager.delegate = self } + + deinit { + printDeinitMessage() + } func receive(subscriber: S) where S: Subscriber, AuthorizationPublisher.Failure == S.Failure, AuthorizationPublisher.Output == S.Input { let subscription = AuthorizationSubscription( diff --git a/Sources/ExtensionKit/CoreLocation/LocationPublisher.swift b/Sources/ExtensionKit/CoreLocation/LocationPublisher.swift index 53d21fd..650f07f 100644 --- a/Sources/ExtensionKit/CoreLocation/LocationPublisher.swift +++ b/Sources/ExtensionKit/CoreLocation/LocationPublisher.swift @@ -36,6 +36,10 @@ final class LocationSubscription : publisherDelegate?.startLocationUpdates() } + deinit { + printDeinitMessage() + } + func cancel() { subscriber = nil publisherDelegate = nil @@ -51,16 +55,20 @@ final class LocationPublisher: NSObject, typealias Failure = Error private let manager: CLLocationManager - private let onTimeUpdate: Bool + private let oneTimeUpdate: Bool private var subscriberDelegate: SubscriptionLocationDelegate? init(manager: CLLocationManager, onTimeUpdate: Bool = false) { self.manager = manager - self.onTimeUpdate = onTimeUpdate + self.oneTimeUpdate = onTimeUpdate super.init() self.manager.delegate = self } + deinit { + printDeinitMessage() + } + // MARK: Publisher func receive(subscriber: S) where S : Subscriber, LocationPublisher.Failure == S.Failure, LocationPublisher.Output == S.Input { @@ -86,7 +94,7 @@ final class LocationPublisher: NSObject, // MARK: PublisherLocationDelegate func startLocationUpdates() { - if onTimeUpdate { + if oneTimeUpdate { manager.requestLocation() } else { manager.startUpdatingLocation()