Skip to content

Instantly share code, notes, and snippets.

@TomaszPietrowski
Created September 13, 2021 16:57
Show Gist options
  • Save TomaszPietrowski/9221185250b7046e70654c9b875f18e8 to your computer and use it in GitHub Desktop.
Save TomaszPietrowski/9221185250b7046e70654c9b875f18e8 to your computer and use it in GitHub Desktop.
extension Reactive where Base: NSItemProvider {
func loadObject<T: NSItemProviderReading>(of type: T.Type) -> Single<T> {
Single.create { single in
self.base.loadObject(ofClass: type) { reading, error in
if let error = error {
single(.error(error))
} else if let object = reading as? T {
single(.success(object))
} else {
single(.error(NSError(
domain: NSItemProvider.errorDomain,
code: NSItemProvider.ErrorCode.unknownError.rawValue
)))
}
}
return Disposables.create()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment