Skip to content

Instantly share code, notes, and snippets.

@isoiphone
Created April 20, 2017 01:10
Show Gist options
  • Save isoiphone/e60863962fff99d1c07e5765c36b01f6 to your computer and use it in GitHub Desktop.
Save isoiphone/e60863962fff99d1c07e5765c36b01f6 to your computer and use it in GitHub Desktop.
Wrapping an iOS 10+ class
class ImpactFeedbackGenerator {
fileprivate init() {
}
static func create() -> ImpactFeedbackGenerator {
if #available(iOS 10.0, *) {
return ConcreteImpactFeedbackGenerator()
} else {
return ImpactFeedbackGenerator()
}
}
func impactOccurred() {}
}
@available(iOS 10.0, *)
class ConcreteImpactFeedbackGenerator: ImpactFeedbackGenerator {
fileprivate let feedbackGenerator = UIImpactFeedbackGenerator(style: .medium)
override func impactOccurred() {
feedbackGenerator.impactOccurred()
}
}
@isoiphone
Copy link
Author

example usage:

let feedback = ImpactFeedbackGenerator.create()
feedback.impactOccured()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment