본문 바로가기

분류 전체보기

(124)
Type Casting 값에 대해서 런타임 타입을 결정하고 더 자세한 정보를 제공 타입 캐스팅이란 인스턴스의 타입을 체크하는 방법 또는 같은 클래스 계층의 다른 곳에서 슈퍼클래스나 서브클래스로 취급하는 방법입니다. Swift에서 타입 캐스팅은 is 나 as 연산자로 구현합니다. 이 두 연산자는 간단하게 값의 타입을 확인하거나 값을 다른 타입으로 정할 수 있게 해줍니다. Defuning a Class Hierarchy for Type Casting 클래스와 서브클래스의 계층 구조와 타입 캐스팅을 함께 사용하면 큭정 클래스 인스턴스의 타입 확인하고 같은 계층의 다른 클래스로 정할 수 있습니다. 타입 캐스팅에 대한 예제를 살펴보면 먼저 MediaItem 이라는 새로운 베이스 클래스를 정의합니다. 해당 클래스는 모든 미디어 아이템을 ..
Inheritance (상속) 기능을 추가하거나 재정의하기 위한 서브 클래스 클래스는 메서드, 프로퍼티 그리고 다른 특성을 다른 클래스로 부터 상속 받을 수 있습니다. 하나의 클래스가 다른 클래스로부터 상속받으면 상속받은 클래스를 서브 클래스 상속한 클래스를 수퍼클래스 라고 합니다. 상속은 Swift에서 다른 타입과 클래스를 구분하는 기본적인 동작입니다. Swift에서 클래스는 수퍼 클래스에 속하는 메서드, 프로퍼티, 서브 스크립트를 호출하고 액세스 할 수 있고, 메서드, 프로퍼티, 서브 스크립트의 동작을 수정하기 위해 재정의할 수 있습니다. Swift는 재정의에 일치하는 상위 클래스 정의가 있는지 체크해서 재정의가 올바른지 확인하는데 도움을 줍니다. Defining a Base Class 다른 클래스로 부터 상속받지 않은 클래스를 ..
Functions 함수(Functions)는 특정 작업을 수행하기 위한 코드 덩어리 입니다. 함수에는 어떤 동작을 하는지 구분하기 위한 이름을 부여할 수 있고 함수를 호출할때 이름이 사용됩니다. 파라미터는 함수 호출은 심플하게 하기 위해 기본 값을 가지고 전달할 수도 있고, 함수가 실행은 완료하면 전달된 변수를 수정하는 in-out 파라미터도 전달할 수 있습니다. Swift의 모든 함수는 파라미터 타입과 리턴 타입으로 구성된 타입을 가지고 있습니다. Swift의 다른 타입과 같이 사용할 수 있어서 다른 함수로 파라미터를 전달하고 함수에서 함수를 반환하기 쉽습니다. 함수는 특정 기능을 캡슐화 해서 사용하기 위해 다른 함수 내에서 중첩해서 작성할 수도 있습니다. Defining and Calling Functions 함수를 ..
Subscripts 클래스, 구조체, 열거형은 콜렉션, 리스트, 시퀀스 멤버의 요소에 접근할 수 있는 단축키인 서브 스크립트를 정의할 수 있습니다. 설정과 검색을 위한 별도의 메서드 없이 인덱스로 값을 설정하고 조회하기 위해 서브 스크립트를 사용합니다. 서브 스크립트는 평소에도 많이 사용하고 있습니다. 배열과 딕셔너리에서 많이 사용하고 있었는데 someArray[index] 처럼 대괄호 안에 index를 전달해서 Array의 요소에 접근하고 someDictionary[key] 처럼 배열의 특정 key의 value에 접근하기위해 대괄호 안에 key값을 이용하여 요소에 접근하는 방법이 있습니다. 단일 타입을 위한 여러개의 서브 스크립트를 정의할 수 있고 적절한 서브스크립트 오버로드는 서브스크립트에 전달하는 인덱스 값의 유형에 ..
Enumerations 열거형은 관련된 값들의 그룹에 공통 타입을 정의하거나 type-safe 하게 해당 값을 사용할 수 있도록 해줍니다. Swift에서 열거형은 각 케이스에 값을 제공하지 않아도 됩니다. 열거형 각각의 케이스는 모든 타입의 연관 값을 지정할 수 있습니다. Swift의 열거형은 전통적으로 클래스에서만 제공되는 계산 프로퍼티, 인스턴스 메서드도 사용할 수 있습니다. 또한 이니셜라이저를 정의해서 초기 케이스 값을 설정할 수도 있고, 프로토콜을 채택해서 사용할 수도 있습니다. Enumeration Syntax 열거형은 enum키워드와 중괄호 안에 모든 정의를 작성합니다. enum SomeEnumeration { // enumeration definition goes here } 다음은 나칩반의 4개의 포인트를 나타내..
Methods Methods는 특정 타입과 연관된 함수 입니다. 클래스, 구조체, 열거형 인스턴스의 동작을 위한 함수는 인스턴스 메서드라고 하고 클래스, 구조체, 열거형의 타입 자체와 연관된 메서드를 타입 메서드라고 합니다. 타입 메서드는 Objective-C의 클래스 메서드와 유사합니다. Swift에서 구조체와 열거형이 메서드를 정의할 수 있다는 점은 C 와 Objective-C와의 가장 큰 차이점 입니다. Objective-C 에서 클래스는 메서드를 정의할 수 있는 유일한 타입입니다. 스위프트에서는 클래스, 구조체, 열거형을 선택하고 생성한 타입에 유연하게 메서드를 정의할 수 있습니다. Instance Methods 인스턴스 메소드는 특정 클래스, 구조체, 열거형의 인스턴스에 포함된 함수입니다. 인스턴스 프로퍼티에..
PopLast & RemoveLast & DropLast popLast, removeLast, dropLast에 대한 정리 Swift 문서를 확인해보면 popLast, removeLast Removes and returns the last element of the collection. dropLast Returns a subsequence containing all but the specified number of final elements. 설명으로만 추측해보면 popLast, removeLast → 마지막 요소를 제거하고 마지막 요소를 반환 dropLast → 지정한 갯수를 빼고 나머지 전체 요소를 반환 실제로 동작시켜보자~ Hello World란 스트링값과 1, 2, 3, 4 Int 값으로 구성된 array 2가지를 테스트해보면 text에 popLast..
Properties Property는 값을 특정 클래스, 구조체, 열거형과 연결합니다. Stored Property는 상수 및 변수 값을 인스턴스의 일부로 저장하고 있는 프로퍼티 클래스, 구조체에서만 사용 가능 Computed Property는 값을 저장하는 대신 계산하여 반환해주는 프로퍼티 클래스, 구조체, 열거형 사용 가능 저장 프로퍼티와 연산 프로퍼티는 특정 타입의 인스턴스와 연결됩니다. 프로퍼티는 타입 자체와 연관될 수도 있습니다. 이런 타입을 Type Property라고 합니다. Stored Properties 저장 프로퍼티는 클래스와 구조체에서만 사용 가능합니다. 가장 간단한 형태의 저장 프로퍼티는 클래스나 구조체에 사용되는 상수(let) 또는 변수(var) 입니다. var를 사용하면 변수 저장 프로퍼티 let을..