Objective-C @available guard AND'ed with more conditions
Objective-C has an @available expression in XCode 9+ / LLVM 5+ that allows you to guard a block of code to at least a certain OS version so that it won't emit unguarded availability warnings if you use APIs that are only available on that OS version. The problem is that this availability guarding is that it only works if it's the sole expression in the condition of an if . If you use it in any other context, you get a warning: @available does not guard availability here; use if (@available) instead So for example, it doesn't work if you try to AND the availability check with other conditions