iOS/π Swift
[Swift] Any μ AnyObject
woozzang
2021. 10. 16. 10:49
1μ°¨ μμ : 21.10.17
μλ νμΈμπΆ
μ΄λ² μκ°μλ Any μ AnyObject λ₯Ό μ 리ν΄λ³΄μμ΅λλ€.
ꡬ체μ μΈ νμ μ΄ μλ μ무 νμ μΌλ‘ μμ νκΈ° μν΄ μ€μννΈκ° μ 곡νλ λ κ°μ§ νΉλ³ν νμ
- Any νμ
λ³μμ λ£μ΄μ£Όλ κ²μ΄ νμ
컨λ²μ μ΄ μλ νμ
μΊμ€ν
μμ μ μνμ.
- Any μ AnyObject νμ μ μμ±μλ₯Ό μ 곡νμ§ μλλ€.
- μλλ μΊμ€ν μ νΉμ§ ππ»ππ»ππ»ππ»
Casting doesn’t actually modify the instance or change its values.
The underlying instance remains the same;
it’s simply treated and accessed as an instance of the type to which it has been cast.
- Any λ ν¨μ νμ μ ν¬ν¨ν μ΄λ ν νμ μ μΈμ€ν΄μ€λ κ°λ¦¬ν¬ μ μλ€.
-
var things: [Any] = [] things.append(0) things.append(0.0) things.append(42) things.append(3.14159) things.append("hello") things.append((3.0, 5.0)) things.append({ (name: String) -> String in "Hello, \(name)" })β
- μ¬μ§μ΄ λ©ννμ μΈμ€ν΄μ€λ κ°λ¦¬ν¬ μ μμ!!!π±
- AnyObject λ ν΄λμ€ νμ
μΈμ€ν΄μ€λΌλ©΄ μ΄λ€ νμ
μ΄λ κ°λ¦¬ν¬ μ μλ€.
- κ·Όλ° μ λ§ Class νμ λ§ κ°λ₯νλ€. (μ°Έμ‘°νμ μ΄ μλλΌ)
- μ°Έμ‘°νμ μΈ ν΄λ‘μ λ Any νμ μ μΊμ€ν ν μ μλ€.
- Any μ AnyObject λ μ λ§ νμν κ²½μ°μλ§ μ¬μ©ν΄μΌ νλ€. ( νμνλ€λ©΄ μ€κ³κ° μλͺ»λμμ κ°λ₯μ±μ΄ νΌ )
- λͺ
νν νμ
μΌλ‘ μμ
νλ κ²μ΄ Any, AnyObject νμ
μ μ¬μ©νλ κ²λ³΄λ νμ λ«λ€!!!!!π₯
- μ»΄νμΌλ¬μ νμ 체ν¬λ₯Ό μ ν μ¬μ©νμ§ λͺ»νλ€ (μ€μννΈλ κ°νμ μΈμ΄)
- λ°νμμ νμ κ²μ¬λ₯Ό ν΄μΌνλ―λ‘ μ€ν μ€ ν¬λμκ° λ°μνκΈ° λ μ½λ€
- κΈ°μ‘΄ Objc-C λ°νμμμ ꡬλλλ API λ₯Ό μ¬μ©νλ κ²½μ°λ₯Ό μ μΈνκ³
- Any νΉμ AnyObject νμ μΌλ‘ μΊμ€ν λ μΈμ€ν΄μ€λ ꡬ체μ μΈ νμ μ λ€μ μ¬μ©νλ €λ©΄ is νΉμ as μ°μ°μλ₯Ό μ¬μ©ν΄μΌ νλ€.
// μΊμ€ν
μ΄ μ±κ³΅ν μΈμ€ν΄μ€λ₯Ό ν΄λΉ νμ
μ μμλ‘ λ°μΈλ©νλ μ½λμ΄λ€.
for thing in things {
switch thing {
case 0 as Int:
print("zero as an Int")
case 0 as Double:
print("zero as a Double")
case let someInt as Int:
print("an integer value of \(someInt)")
case let someDouble as Double where someDouble > 0:
print("a positive double value of \(someDouble)")
default:
continue
}
}
μ€λλ λλ μ±μ₯νλ€!!π₯
π€π’[μ°μ§±μ iOS λΈλ‘κ·Έ]π΅π»
iOSλ₯Ό 곡λΆνλ©΄μ λ°°μ΄ λ΄μ©μ κΈ°λ‘νκ³ μμ΅λλ€.
[μ°Έκ³ λ§ν¬]
https://docs.swift.org/swift-book/LanguageGuide/TypeCasting.html