I want to execute a code block only on devices running with an OS older than iOS8
. I can\'t do:
if #available(iOS 8.0, *) == false {
doFoo()
I use a guard
for this:
guard #available(iOS 8.0, *) else {
// Code for earlier OS
}
There's slight potential for awkwardness since guard
is required to exit the scope, of course. But that's easy to sidestep by putting the whole thing into its own function or method:
func makeABox()
{
let boxSize = .large
self.fixupOnPreOS8()
self.drawBox(sized: boxSize)
}
func fixupOnPreOS8()
{
guard #available(iOS 8, *) else {
// Fix up
return
}
}
which is really easy to remove when you drop support for the earlier system.