본문 바로가기

Swift 문법

(3)
[iOS - Swift] Any, AnyObject의 차이점은? Swift는 다양한 데이터 타입들이 있다. 보통 기본적인 프로그래밍 언어 C, Python, Java에서 쓰이는 Int, Double, Float, String, Bool, Array등 정말 많다. 하지만 내가 처음 Swift를 공부할 때 낯선 데이터 타입이 있었다. 바로 Any와 AnyObject 이다. Python에서는 object 타입과 비슷하고 C#에서도 object 타입과 비슷하다. 오늘은 Swift에서의 Any와 AnyObject의 차이점을 알아보겠다. Any 스위프트의 모든 타입을 나타내는 일반적인 타입이다. 모든 타입의 인스턴스를 나타낼 수 있다. AnyObject 모든 클래스 타입의 인스턴스를 나타낼 수 있다. AnyObject는 타입이 아니라 '프로토콜' 이다. 스위프트의 모든 클래스는..
[iOS - Swift] 옵셔널(Optional)에 대하여, 옵셔널 추출, 옵셔널 바인딩(Optional Binding), 옵셔널 체이닝(Optional Chaining) 옵셔널(Optional) 이란? 옵셔널이란 값이 있을 수도 있고, 없을 수도 있는 것이다. 일반적인 프로그래밍 언어에서는 값이 null 인 변수에 접근하면 프로그램이 종료된다. 하지만, swift에서는 옵셔널을 사용하면 값이 없는 변수에 접근해도 프로그램이 종료되지 않는다. 옵셔널(Optional) 을 사용하는 이유 값이 없는 데이터 공간에 접근하려고 하면 에러가 발생한다. 값을 초기화하지 않았기 때문에 메모리에 값이 저장되어 있지 않을 것이다. 혹은, ‘쓰레기 값’이 저장되어 있을 것이다. 코드로 간단하게 예시를 들어보겠다. var name : String print(name) 위의 예시를 실행시켜보면 에러가 발생할 것이다. 왜냐면 name에는 아무런 값이 있지 않기 때문이다. 그럼 앱이 꺼지지 않게 ..
[iOS - Swift] is, as 타입 캐스팅 (업 캐스팅, 다운 캐스팅) 앱을 개발하다 보면 is, as, as!, as? 와 같이 같은 듯 다른 문법을 본 적이 있을것이다. 우리는 이걸 타입 캐스팅 이라고 하는데 어떤 것들이 다른지 정확히 짚고 넘어가기 위해 글을 작성하게 되었다. 타입 캐스팅 (Type Casting) 변수나 상수의 타입을 다른 타입으로 변경하는 것을 말한다. 인스턴스의 타입을 확인하거나, 인스턴스를 같은 계층에 있는 다른 슈퍼 클래스(상위)나 서브 클래스(하위)로 취급하는 방법이기도 하다. 타입 캐스팅은 is 와 as 연산자를 사용한다. is 연산자 특정 인스턴스의 타입을 확인하는 연산이다. 반환 타입은 Bool이다. let mystr : String = "Kimgahyun" mystr is Character // false mystr is String ..

728x90