분류 전체보기 57

[Swift] Inheritance- final 키워드

Inheritance - Preventing Overrides(오버라이드 방지)Swift에서 final키워드를 사용하면 메소드, 프로퍼티, 서브스크립트가 오버라이드를 금지할 수 있습니다. 주로 재정의할 필요가 없을 때 final을 사용하는 것이 좋습니다. 참고로 클래스 자체가 상속되는 것을 막을려고 할 때에도 final을 사용할 수 있습니다. (final 클래스를 상속받으려는 클래스는 컴파일 시 에러가 발생합니다.)

Swift 2018.04.25

[Swift] map, filter, reduce

Swift의 표준 배열 라이브러리는 map, filter, reduce라는 세 가지 기능을 제공합니다. map 클로저로 각 항목들을 반영한 결과물을 가진 새로운 배열을 반환합니다. Declaration Parameters transform으로 넘기는 것은 클로저는 변경된 값을 반환하기 위해 해당 타입의 값을 반환합니다. Return Value 변환 된 요소를 포함한 배열 반환 사용 filter 클로저로 각 항목들을 비교하여 일치하는 결과물을 가진 새로운 배열을 반환합니다. Declaration Parameters isIncluded를 지원하는 클로저는 항목이 포함되는지(true) 또는 제외되는지(false) boolean값을 반환합니다. Return Value 변환 된 요소를 포함한 배열 반환 사용 re..

Swift 2018.04.17

[iOS] Label - 줄바꿈 속성(Line Break Option)

Character Wrap개별 문자 단위로 줄바꿈합니다. 하나의 단어가 완전히 끝나지 않았어도 라인의 끝에 도착하면 다음 라인으로 줄을 바꾸어 나머지 문자를 계속 출력합니다. 물론 Line 속성에서 설정된 라인 수를 넘어서면 나머지 텍스트는 표시하지 않습니다. Word WrapCharacter Wrap과 비슷하지만, 개별 문자가 아니라 단어 기준으로 줄바꿈합니다. 즉, 단어 중간을 끊어 줄바꿈하지 않는다는 뜻입니다. 이 때문에 단어 전체가 들어갈 공간이 충분하지 않으면 남은 공간이 있더라도 다음 라인으로 줄바꿈하는 특성이 있습니다. Truncate Head콘텐츠 출력에 필요한 라인 수보다 레이블에 설정된 Line 속성이 적을 경우, 마지막 라인의 첫 머리 텍스트 일부를 말줄임표로 처리합니다.즉, 앞부분을..

iOS 2018.04.15

[Swift] 접근 제어(Access Control) - 접근 레벨

접근 레벨(Access Levels) Swift는 코드 내의 엔티티에 대해 다섯 가지 접근 레벨을 제공합니다. 이러한 접근 레벨은 엔티티가 정의 된 소스 파일에 관련이 있으며, 소스 파일이 속한 모듈과도 관련이 있습니다. 1. open access 및 public access을 통해 엔티티를 정의 모듈의 모든 소스 파일 내에서 사용할 수 있으며, 정의한 모듈을 가져오는 다른 모듈의 소스파일에서도 사용할 수 있습니다. 일반적으로 공용 인터페이스를 지정할 때 사용합니다. 2. internal access는 엔티티가 정의 모듈의 모든 소스 파일내에서 사용되지만 해당 모듈 외부의 소스 파일에서는 사용되지 않도록 합니다. 일반적으로 앱이나 프레임워크의 내부 구조를 정의할 때 사용합니다. 3. file-privat..

Swift 2018.04.10

[Swift] 접근 제어(Access Control) - 접근 제어 모델

모듈과 소스 파일(Modules and Source Files) Swift의 접근 제어 모델은 모듈과 소스파일의 개념을 기반으로 합니다. 모듈은 코드 배포의 단일 유닛입니다.Swift에서 import키워드를 사용하여 다른 모듈에서 가져올 수 있는 프레임워크 또는 응용 프로그램인 단일 코드 배포 단위입니다. Xcode의 각 빌드 대상(예: 앱 번들 또는 프레임워크)은 Swift에서의 별도의 모듈로 처리됩니다. 독립 실행형 프레임워크로 그룹화하면 해당 코드가 개별적인 프레임워크에서 캡슐화하여 재사용할 수 있습니다. 소스파일(사실상, 앱 또는 프레임워크 내에서 하나의 파일)은 모듈 내의 단일 스위프트 소스 코드 파일입니다. 개별 소스 파일에 각각 타입을 정의하는게 일반적이지만, 하나의 소스파일에서 여러 타입,..

Swift 2018.04.10

[Swift] 접근 제어(Access Control) - 정의

접근 제어는 다른 소스 파일 및 모듈의 코드에서 코드의 일부에 대한 접근을 제한합니다. 이 기능을 사용하면 코드의 구현한 세부 사항을 숨기고, 해당 코드를 접근하고 사용할 수 있는 인터페이스를 지정할 수 있습니다. 각각의 타입(클래스, 구조체, 열거형)뿐만 아니라 프로퍼티, 메소드, 초기화, 서브스크립트에 대해 접근 레벨을 지정할 수 있습니다. 프로토콜은 전역 상수, 변수 및 함수처럼 특정 컨텍스트로 제한 될 수 있습니다. Swift는 다양한 수준의 접근 이외에도 일반적인 시나리오에 대한 기본 접근 수준을 제공함으로써, 명시적 접근 제어 수준을 지정하지 않아도됩니다. Note : 접근 제어를 적용할 수 코드(프로퍼티, 타입, 함수 등)의 다양한 측면을 간결하게 하기 위해 아래에서 "엔티티"라고 언급합니다.

Swift 2018.04.10

[iOS] 뷰 컨트롤러 생명주기 (ViewController Lifecycle)

# 뷰의 상태 변화 메소드뷰가 나타나거나 사라지는 등 뷰가 화면에 보이는 상태가 변화할때 호출되는 메서드입니다. 각 메서드가 호출 될때의 시점과 수행하면 좋은 작업을 확인해보세요. func viewDidLoad() 뷰 계층이 메모리에 로드된 직후 호출되는 메서드뷰의 추가적인 초기화 작업을 하기 좋은 시점메모리에 처음 로딩 될때 1회 호출되는 메서드로, 메모리 경고로 뷰가 사라지지 않는 이상 다시 호출되지 않음func viewWillAppear(_ animated: Bool)뷰가 뷰 계층에 추가되고 화면이 표시되기 직전에 호출되는 메서드뷰의 추가적인 초기화 작업을 하기 좋은 시점다른 뷰로 이동했다가 되돌아오면 재호출되는 메서드로, 화면이 나타날때마다 수행해야하는 작업을 하기 좋은 시점func viewDid..

iOS 2018.04.06