iOS) available μμ보기
π available μμ보기
available
μ μ¬μ©νμ¬ νΉμ Swift λ²μ λλ νΉμ νλ«νΌ λ° OSλ²μ κ³Ό κ΄λ ¨λ μ μΈμ μλͺ
μ£ΌκΈ°λ₯Ό λνλΈλ€.
μ¬μ©κ°λ₯ν μμ±(attribute)μ νμ λκ° μ΄μμ μΌνλ‘ κ΅¬λΆλ attribute argument λͺ©λ‘κ³Ό ν¨κ» λνλλ€.
μ΄λ¬ν argumentλ λ€μ νλ«νΌ λλ μΈμ΄ μ΄λ¦ μ€ νλλ‘Β μμνλ€.
iOS
iOSApplicationExtension
macOS
macOSApplicationExtension
watchOS
watchOSApplicationExtension
tvOS
tvOSApplicationExtension
swift
#available ?
#available μ λ€μκ³Ό κ°μ΄ μ¬μ©λκ³ *
νμμ΄λ€. Bool μ λ°ννλ λ°νμ κ²μ¬μ΄λ€. κ·Έλμ λ°νμ μ€μ λͺ¨λλ₯Ό λ³κ²½ν΄λ λ°μμ΄ λλ€.
// β
if μμ μ¬μ©
if #available(iOS 14, *) {
print("This code only runs on iOS 14 and up")
} else {
print("This code only runs on iOS 13 and lower")
}
// β
guard μμ μ¬μ©
guard #available(iOS 14, *) else {
print("Returning if iOS 13 or lower")
return
}
print("This code only runs on iOS 14 and up")
@available ?
λ©μλλ₯Ό Swift, OS λ²μ λλ νλ«νΌμ λ²μ μ λ°λΌμ μ νν μ μλ€.
@available
μ ν¨μ(λ©μλ), ν΄λμ€ λλ νλ‘ν μ½ μμ λμΈλ€. νμ
λλ νλ‘ν μ½μ΄ μ μ©λλ νλ«νΌ λ° OSλ₯Ό λνλΈλ€.
#available
κ³Ό λ€λ₯΄κ², μ»΄νμΌ νμμ κ²½κ³ λλ μ€λ₯λ₯Ό μμ±ν©λλ€.
@available(iOS 12, *)
func setupDoneButton() { }
// λ€μκ³Ό κ°μ΄ μ¬μ© κ°λ₯
@available(iOS 12.0, macOS 10.12, *)
func setupDoneButton() { }
deployment target μ¦, μ΅μνμΌλ‘ μ§μνλ OS λ²μ μ΄ 10.0 μΈ κ²½μ°μ μμ setupDoneButton()
λ©μλλ λ€μκ³Ό κ°μ΄ μ¬μ©λλ€.
if #available(iOS 12, *) {
self.setupDoneButton()
} else {
// Fallback on earlier versions
}