
UNIX 기반하드웨어와 가장 가까이 있는 최하위 계층C기반의 저수준의 API로 이루어져 있음데이터처리, 네트워크, 파일 접근 등 시스템의 핵심 기능을 포함하는 기본적인 부분들을 관리시스템의 핵심 기능을 관리한 Core OS에서 제공하지 않는 부가기능들을 포함내부 데이터

에러화면버튼의 Style이 Plain일 경우 해당 문제 발생Style을 Default로 변경해줌

1\. Create New Project... 선택2\. Application 유형(App) 선택 및 프로젝트 이름 저장경로 설정3\. Signing & Capabilities -> Team 설정추가로 Info파일의 위치를 변경하였다면 Build Settings에서 I
선언호출
프로퍼티(property)는 일부 객체 지향 프로그래밍 언어에서 필드(데이터 멤버)와 메소드 간 기능의 중간인 클래스 멤버의 특수한 유형이다. 프로퍼티의 읽기와 쓰기는 일반적으로 getter와 setter 메소드 호출로 변환된다.Swift에서는 프로퍼티가 총 3가지 형
클래스, 구조체, 열거형에서 사용된다. 저장 프로퍼티와 달리 저장 공간을 갖지 않고, 다른 "저장프로퍼티"의 값을 읽어 연산을 실행하거나, 프로퍼티로 전달받은 값을 다른 프로퍼티에 저장한다. 때문에 항상 var로 선언되어야 한다형식)연산프로퍼티는 어떠한 값을 저장하는
클래스, 구조체, 열거형에서 사용된다. 저장 타입 프로퍼티와 연산 타입 프로퍼티가 존재하며, 저장 타입 프로퍼티의 경우 선언할 당시 원하는 값으로 항상 초기화가 되어 있어야 한다. static을 이용해 선언하며, 자동으로 lazy로 작동한다(lazy를 직접 붙일 필요
프로퍼티 값의 변화를 관찰하는 것으로, 저장 프로퍼티에 추가할 수 있다.새 값의 속성이 현재 값과 동일하더라도 속성 값이 설정되면 호출된다willSet 옵저버를 구현하면, 값이 저장되기 직전에 새로 저장될 값이 파라미터로 전달 된다. 이때 파라미터 이름은 지정할 수 있
열거형 같은 주제로 연관된 데이터들을 멤버로 구성하여 나타내는 자료형 이미 정해놓은 입력 값만 선택해서 받고 싶을 때 사용 Heap에 저장되는 String 과 달리 Enum은 값 형식으로 Stack 저장되어 성능면에서 이득 열거형 정의 원시값이 없는 열거형 원시값이 있는 열거형 열거형의 case는 원시값을 지정해 줄 수 있다. 이를 Raw Value 라...

옵셔널 Optional은 nil을 사용할 수 있는 타입과 없는 타입을 구분하기 위함이며, nil을 사용할 수 있는 Type을 Optional Type이라 부른다 nil은 포인터가 아니라 특정 타입에 대한 값의 부재를 나타냄 옵셔널은 열거형 옵셔널 사용법 >참조
Tuple은 스위프트 타입 중 하나로 서로 다른 타입들을 그룹으로 묶어서 하나의 타입을 만든다.튜플을 선언한 후엔 자료형 및 멤버의 갯수 수정 불가참조개발자 소들이
a...ba..<b...a a... ..<a~= 연산자는 범위 안에 해당 값이 속하는지 확인하는 연산자로, 리턴 값은 Bool이다참조개발자 소들이
func 키워드로 생성메서드 : 클래스, 구조체, 열거형 속에 포함되어 있는 함수클로저(Closure) : 클로저라고 하면 보통 익명 함수(Unnamed Closure)를 뜻하지만 func 키워드를 이용해 이름을 붙여주는 함수도 모두 클로저이다. Named Closur
클로저(Closure)란 내부 함수와 내부 함수에 영향을 미치는 주변 환경을 모두 포함한 객체클로저(Closure)는 Named Closure & Unnamed Closure 둘 다 포함하지만, 보통 Unnamed Closure(익명함수)를 말함Named Closure
배열을 어떠한 조건에 맞추어 재생성이 가능한 함수filter(includeElement: (T) -> Bool) -> T조건에 맞추어 배열의 값들을 변경하여 재생성이 가능한 함수map(transform: (T) -> U) -> U특정 조건으로 배열 인덱스들을 계산하여
Swift에서는 기본클래스를 가지지 않아도 되지만 Objective-c에서는 모든 클래스는 NSObject의 자식 클래스여야 함.Swift에서 Objective-c로 된 API를 사용할 때 NSObject의 자식 클래스가 되는 클래스 필요원시 타입을 객체 안에 포장하기

초기화(Initializers)란구조체/열거형/클래스의 인스턴스를 생성하는 것이 초기화로, 초기화의 역할은 모든 프로퍼티를 기본값으로 초기화 하는 것이다. 인스턴스 내 기본값이 존재하지 않는 프로퍼티가 있을 경우, 초기화에 실패하고 인스턴스는 생성되지 않는다.값이 있을

초기화 시점에 모든 프로퍼티들은 기본 값을 가지고 있어야한다. 만약 기본 값이 없는 프로퍼티가 있을 경우, 초기화에 실패하여 인스턴스가 생성되지 않는다.하나의 프로퍼티라도 기본 값을 지니지 않거나, 옵셔널 타입의 변수가 아니라면 init함수를 통해 나머지 프로퍼티도 초
Initializer Delegation이란, 생성자에서 또 다른 생성자를 호출하여 초기화 코드의 중복을 최대한 제거하고, 모든 프로퍼티를 효율적으로 초기화 하기위해 사용하는 것.값(구조체) 형식와 참조(클래스) 형식이 다르다.(상속의 여부가 갈리기 때문)Delegat

Swift에서 초기화는 두단계 과정을 거친다첫 번째 단계에서 저장된 각 프로퍼티는 해당 클래스에 의해 초기값이 할당 된다.두 번째 단계에서 해당 인스턴스를 사용할 수 있는 상태로 간주하기 전에 프로퍼티 값을 사용자 정의할 수 있는 기회가 제공 된다.두 단계 초기화는 초
필수 생성자로, 슈퍼 클래스에서 정의해둘 경우 서브 클래스가 슈퍼 클래스의 생성자를 상속받지 않는 한 서브클래스에서 반드시 구현해주어야 한다.오버라이딩 이지만 override키워드 없이, 슈퍼클래스와 동일한 형태로 구현해 줘야 함부모의 모든생성자를 상속받으면 부모에 선
기존 생성자(Nonfailable Initializers)는 컴파일 시점에 모든 프로퍼티가 초기화 되어야 하기 때문에 초기화에 실패할 경우, 컴파일 에러가 발생한다. 하지만 Failable Initializers는 초기화에 실패하더라도 에러가 발생하지 않고 nil을 리
타입 캐스팅은 인스턴스의 Type을 확인 하거나, 해당 인스턴스를 슈퍼 클래스나 하위 클래스로 취급하는 방법이다.Swift에서 타입 캐스팅은 is나 as연산자로 구현하며, 타입 캐스팅을 사용하여 타입이 프로토콜에 적합한지 여부도 확인할 수 있다.타입을 체크하는 연산자로
타입 캐스팅을 수행할 때 일반적으로 상속 관계에 있는 클래스끼리만 캐스팅이 가능하지만, Any와 AnyObject 타입을 사용할 경우, 상속 관계에 있지 않아도 타입 캐스팅을 할 수 있다.모든 타입을 저장한다모든 클래스 타입을 저장한다Any 타입에서 다른 타입의 멤버에
NSUserDefaults
Property List는 기본적으로 Array, Dictionary, String, Double, Int, NSData, NSDate의 조합으로 되어있음. 이 클래스들로 데이터 구조를 만든 것(String, Array, Dictionary, Double.. 등 구조체

여러개의 뷰를 정렬해서 나타낼 때 능률적인 인터페이스StackView란 바둑판 처럼 행&열로 나열되는 뷰들의 AutoLayout을 설정할 때 간편한 인터페이스스택뷰는 총 두가지 가로 : Horizontal Stack View, 세로 : Vertical Stack Vie
AUto Layout이란 제약조건(Constaints)에 따라 뷰 계층 구조에 있는 모든 뷰의 크기와 위치를 동적으로 지정하는 것이다Constraints : 내 위치를 다른 객체로부터 상대적으로 나타내는 것(해상도가 변하더라도 대응)Top, Bottom은 위쪽, 이래쪽

Safe Area 가 등장하기 전 상태바(Status Bar), 내비게이션 바(Navigation Bar), 탭바(Tabbar)등에 의해서 View가 가려지지 않기 위해서 제공되던 시스템적인 마진.iOS 11 부터 노치가 생기면서 화면을 기울일 경우 Leading/Tr

컨텐츠의 본질적인 크기Label 같은 경우 Width와 Height Constraints를 지정해주지 않더라도 본질적인 크기Intrins Content Size를 가지고 있음.Intrinsic Content Size를 가지는 대표적인 것동적으로 크기를 결정하는 뷰들이
View는 UIView 클래스의 인스턴스로, 윈도우 위에서 컨첸츠를 보여준다. 즉, 화면에 나타나는 거의 모든 요소를 뷰의 컨텐츠라고 봐도 무방하다. 뷰는 컨텐츠를 나타내고 터치, 하위 뷰의 배치등의 역할을 수행한다.뷰는 사각영역이며, 좌표 공간으로 정의. 드로잉이나
View를 그릴 때는 기본적으로 x좌표, y좌표, width, height 필요CGPoint는 (x,y)좌표를 설정할 수 있음View의 위치를 나타낼 때 CGPoint사용(View의 위치를 나타낼 때만 사용하진 않음)구조ex)CGSize는 width, height 사이

frame과 bounds는 View의 위치와 크기를 나타냄frame은 Super View 좌표계에서 View의 위치와 크기를 나타냄Super View : 내 View의 한칸 윗 계층 ViewSuper View의 원점을 (0,0)으로 놓고 원점으로 부터 얼마나 떨어져 있

iOS의 UI 구현 방식 iOS에서 UI를 구현하기 위해 3가지 방식을 이용 스토리보드로 구현 코드로 구현 NIB, XIB로 구현 NIB NIB(Nextstep Interface Builder)란 iOS/MacOS에서 애플리케이션의 유저 인터페이스를 저장하는 파일 화

iOS의 UI 구현 방식 iOS에서 UI를 구현하기 위해 3가지 방식을 이용 스토리보드로 구현 코드로 구현 NIB, XIB로 구현 코드로 구현 Frame-Based Layout AutoLayout 그리기 1. addSubView로 뷰 추가해주기 코드로 AutoL
Custom View 그리기 draw(_:) draw(_:)(drawRect) 함수를 override해서 그림 draw(_ :) : 뷰에서 CGRect 직사각형으로 특정된 영역에 대해 뷰를 다시 그리는 등 업데이트 할 때 호출되는 메서드 draw(_ :) 메서드
View Controller 생명주기 View 의 상태 뷰가 보여지는 상황은 크게 4가지로 구분 Appearing : View가 화면에 나타나는 중 Appeard : View가 화면에 완전히 나타난 상태 Disappearing : View가 화면에서 사라지는 중 D
Gestures 제스처는 화면을 통해 전달된 사용자의 입력 UIGestureRecognizer GestureRecognizer는 제스처 인식기라고도 하며 여러 터치 이벤트를 인식. 특정 제스처 이벤트가 일어나면 각 타겟에 맞는 액션 메시지를 보내 제스처 관련 이벤트를