• Swift에서 Casting 하기(Casting in Swift)

    Swift를 공부하면서 느낀 것은 일단 Casting에 대한 부분이 Objective-C와 많이 다르다는 것이다. 타입 체크는 is로 바뀌었다. 이 부분은 매우 만족한다. Casting은 as라는 것으로 하는데… 이 부분이 매우 헷갈린다. 일단 Swift의 특성상 as, as?, as! 이렇게 3가지로 나눌 수 있다. as의 경우 PHImageManager.default().requestImageData(for: asset, options: nil) { (data, string, orientation, info)...


  • Swift에서 Any와 AnyObject(Any and AnyObject in Swift)

    Any : 말 그대로 어떤 타입이든 다 포함한다. AnyObject : class 타입만 포함한다. var anyArr: [Any] = [0, "1"] // (o) var anyObjArr: [AnyObject] = [0, "1"] // (x) 즉, Value type은 AnyObject로 캐스팅될 수 없다. class A {} class B {} var anyObjArr: [AnyObject] = [A(), B()] // (o)...


  • Swift Optional

    Optional은 해당 변수가 값이 있을 수도 있고 없을 수도 있다는 것을 나타내는 것을 의미한다. 그래서 몇 가지 규칙이 필요한데… var a = nil // (x) // 일단 스위프트는 값이 들어가면 데이터 타입을 예측할 수 있는데 // nil은 데이터 타입을 알 수 없기 때문에 허용되지 않는다. var a: Int = nil...


  • 스위프트 Value type과 Reference type(Value type and Reference type in Swift)

    어느 언어든지 값의 복사, 값의 참조 이 두 경우가 항상 중요하다. Swift 공부를 시작하면서 해당 언어에서 사용하는 방식을 조금 정리해 보려고 한다. Structure와 Enumeration은 Value type이다. Value type이라는 것은 함수의 매개변수로 값을 보낼 때나 값을 할당할 때, copy 속성으로 값을 처리한다는 것이다. Struct Resolution { var width = 0 var...


  • 스위프트의 Structure와 Class(Structure and Class in Swift)

    Objective-c에서 Swift로 넘어오려다 보니 Structure라는 것이 보인다. 내가 일반적으로 생각하는 구조체와는 다른다. Structure와 Class 비교 공통점 값을 저장하기 위한 속성 정의 기능 제공을 위한 메소드 정의 subscript 구문을 이용한 접근을 위한 subscript 정의 기본 구현을 넘어 기능 확장을 위한 확장 특정 형태의 기본 기능 제공을 위한 protocol을 따름 Class만 가진...