Skip to content

Files

Latest commit

 

History

History
86 lines (43 loc) · 1.11 KB

deployment_target.md

File metadata and controls

86 lines (43 loc) · 1.11 KB

Pattern: Malformed deployment target

Issue: -

Description

Validate that @availability attributes and #available conditions are not using a version that is satisfied by the deployment target.

Examples of correct code:

@available(iOS 12.0, *)
class A {}


@available(watchOS 4.0, *)
class A {}


@available(swift 3.0.2)
class A {}


class A {}


if #available(iOS 10.0, *) {}


if #available(iOS 10, *) {}


guard #available(iOS 12.0, *) else { return }

Examples of incorrect code:

@available(iOS 6.0, *)
class A {}


@available(iOS 7.0, *)
class A {}


@available(iOS 6, *)
class A {}


@available(iOS 6.0, macOS 10.12, *)
 class A {}


@available(macOS 10.12, iOS 6.0, *)
 class A {}


@available(macOS 10.7, *)
class A {}


@available(OSX 10.7, *)
class A {}


@available(watchOS 0.9, *)
class A {}


@available(tvOS 8, *)
class A {}


if #available(iOS 6.0, *) {}


if #available(iOS 6, *) {}


guard #available(iOS 6.0, *) else { return }

Further Reading