Skip to content

Commit 1992607

Browse files
authored
Adds conditional compilation to handle compiler behaviour change in swift 5.7 (#59)
1 parent b5360de commit 1992607

File tree

1 file changed

+27
-10
lines changed

1 file changed

+27
-10
lines changed

Sources/MKMapView+Rx.swift

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,20 @@ extension Reactive where Base: MKMapView {
165165
// MARK: Responding to Annotation Views
166166

167167
public var didAddAnnotationViews: ControlEvent<[MKAnnotationView]> {
168+
let selector: Selector
169+
#if swift(>=5.7)
170+
selector = #selector(
171+
(MKMapViewDelegate.mapView(_:didAdd:))
172+
as (MKMapViewDelegate) -> ((MKMapView, [MKAnnotationView]) -> Void)?
173+
)
174+
#else
175+
selector = #selector(
176+
(MKMapViewDelegate.mapView(_:didAdd:))!
177+
as (MKMapViewDelegate) -> (MKMapView, [MKAnnotationView]) -> Void
178+
)
179+
#endif
168180
let source = delegate
169-
.methodInvoked(#selector(
170-
(MKMapViewDelegate.mapView(_:didAdd:))!
171-
as (MKMapViewDelegate) -> (MKMapView, [MKAnnotationView]) -> Void
172-
)
173-
)
181+
.methodInvoked(selector)
174182
.map { a in
175183
return try castOrThrow([MKAnnotationView].self, a[1])
176184
}
@@ -233,12 +241,21 @@ extension Reactive where Base: MKMapView {
233241
// MARK: Managing the Display of Overlays
234242

235243
public var didAddOverlayRenderers: ControlEvent<[MKOverlayRenderer]> {
244+
245+
let selector: Selector
246+
#if swift(>=5.7)
247+
selector = #selector(
248+
(MKMapViewDelegate.mapView(_:didAdd:))
249+
as (MKMapViewDelegate) -> ((MKMapView, [MKOverlayRenderer]) -> Void)?
250+
)
251+
#else
252+
selector = #selector(
253+
(MKMapViewDelegate.mapView(_:didAdd:))!
254+
as (MKMapViewDelegate) -> (MKMapView, [MKOverlayRenderer]) -> Void
255+
)
256+
#endif
236257
let source = delegate
237-
.methodInvoked(#selector(
238-
(MKMapViewDelegate.mapView(_:didAdd:))!
239-
as (MKMapViewDelegate) -> (MKMapView, [MKOverlayRenderer]) -> Void
240-
)
241-
)
258+
.methodInvoked(selector)
242259
.map { a in
243260
return try castOrThrow([MKOverlayRenderer].self, a[1])
244261
}

0 commit comments

Comments
 (0)