Availablity

๐Ÿ’ก ํŠน์ • Swift ๋ฒ„์ „ ๋˜๋Š” ํŠน์ • ํ”Œ๋žซํผ, ์šด์˜์ฒด์ œ ๋ฒ„์ „๊ณผ ๊ด€๋ จ๋œ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

@available

  • ํƒ€์ž…, ์†์„ฑ, ๋ฉ”์„œ๋“œ ์•ž์— ์„ ์–ธ

  • iOS ๋ฒ„์ „ x ์ด์ƒ์„ ์ ์šฉํ•˜๊ณ ์žํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ API์˜ ์‚ฌ์šฉ๊ฐ€๋Šฅ์„ฑ์„ ๊ฒฐ์ •

#available

  • ์กฐ๊ฑด๋ฌธ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. (if, guard, while)

  • ๋Ÿฐํƒ€์ž„์— API์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ์„ฑ์„ ๊ฒฐ์ •ํ•œ๋‹ค

  1. ํ”Œ๋žซํผ ์ด๋ฆ„

    iOS iOSApplicationExtension macOS macOSApplicationExtension macCatalyst macCatalystApplicationExtension watchOS watchOSApplicationExtension tvOS tvOSApplicationExtension swift

  2. ๊ฐ€์šฉ์„ฑ

    *

  3. ์ถ”๊ฐ€์ •๋ณด

    unavailable : ์ง€์ •๋œ ํ”Œ๋žซํผ์—์„œ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. (Swift์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค)

    introduced : ์„ ์–ธ์ด ๋„์ž…๋œ ํ”Œ๋žซํผ์ด๋‚˜ ์–ธ์–ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์„ ์˜๋ฏธํ•œ๋‹ค.

    deprecated : ์„ ์–ธ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ง€์ •๋œ ํ”Œ๋žซํผ์ด๋‚˜ ์–ธ์–ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „

    ๋“ฑ๋“ฑ.. ํ•„์š”ํ•  ๋•Œ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑํ•ด๋ณด์ž!

์˜ˆ์ œ

@available(iOS 11.0, *)
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
    }
    
    @available(iOS 11.0, *)
    func doSomething() {
        // (if, while, guard๋ฌธ์œผ๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
        if #available(iOS 11.0, *) {
            // iOS 11๋ฒ„์ „์ด์ƒ์ธ ๊ฒฝ์šฐ ์ ์šฉ ์‹œํ‚ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ
            
        } else {
            // iOS 11๋ฒ„์ „๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ ์ ์šฉ ์‹œํ‚ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ
        }
        
    }

}
  • ํ•ด๋‹น ํด๋ž˜์Šค๋Š” iOS 11 ์ด์ƒ์—์„œ๋งŒ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

  • doSomething์€ iOS 11 ์ด์ƒ์—์„œ๋งŒ ์กด์žฌํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

    • iOS 11 ์ด์ƒ์—์„œ๋งŒ ํ•ด๋‹น ์กฐ๊ฑด๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค. (ํ˜„์žฌ ๋กœ์ง์œผ๋กœ๋Š” ์ ํ•ฉํ•˜์ง€๋Š” ์•Š๋‹ค.)

// First Release
protocol MyProtocol {
    // definition
}

protocol MyRenamedProtocol {
    // definition
}

@available(*, unavailable, renamed: "MyRenamedProtocol")
typealias MyProtocol = MyRenamedProtocol

Last updated