일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 후기
- 웹
- spritekit
- widgetkit
- Protocol
- 스유
- 리액트
- TCA
- 운영체제
- 위젯킷
- 알고리즘
- 대외활동
- c++
- 1일1알골
- SwiftUI
- 컴퓨터그래픽스
- 문법
- uikit
- dispatchqueue
- 스위프트
- swift concurrency
- cs
- 네트워크
- composable architecture
- 백준
- widget
- 멋사
- 멋쟁이사자처럼
- Swift
- 영남대
- Today
- Total
목록앱/Swift 문법 (15)
맛동산이
스위프트 공식문서를 참조하였습니다. 옵셔널이란? 옵셔널 선언 옵셔널 해제 명시적 해제 묵시적 해제 옵셔널 체이닝의 정의 옵셔널 체이닝의 선언 옵셔널이란? 먼저 옵셔널 체이닝을 이해하기 이전에 옵셔널이라는 타입을 이해해야 한다. 옵셔널이란, nil이 들어갈수 있는 변수를 의미하며, 옵셔널의 값은 nil혹은 nil이 아닌값만을 가질수 있다. 옵셔널 선언 var st:String? = "hi" 옵셔널을 선언하기 위해서는 타입선언 뒤에 ? 를 붙여서 옵셔널 타입을 주면 된다. 옵셔널 해제 옵셔널 타입은 연산을 지원해주지 않는다. 즉 다른 변수들과의 연산을 전혀 할수가 없다. 옵셔널 타입의 결과값은 항상 옵셔널 타입만을 알려주기 때문에 언래핑을 해주어서 사용해야 한다. 옵셔널 해제는 명시적 해제 , 묵시적 해제로..
스위트 공식문서를 참조하였습니다. 정의 선언 정의 기본적으로 디이니셜라이저는 초기화와 반대로 클래스 인스턴스가 소멸되기 직전에 호출되어, 선언되었던것을 해제 해주는 역할을 하게 된다. 보통 자동으로 스위프트가 인스턴스를 제거할 때 해제를 해주기 때문에 필요하지는 않지만, 수동으로 해주어야 할 경우 사용하게 된다. 선언 deinit{ } 크게 사용할 일은 없을것 같지만, c++에서 소멸자 정도로 생각하면 될듯 하다. Uploaded by N2T
스위프트 공식문서를 참조하였습니다. 익스텐션(extension) 정의 선언 예시 프로토콜 extension을 통한 default값 설정 delegate 디자인 패턴에서 extension을 이용한 코드정리 익스텐션(extension) 정의 익스텐션이란 스위프트에서 클래스, 구조체, 열거형, protocol에 새로운 기능을 추가 할때, 사용하는 방법이다. 상속하지 않고, 기존 클래스의 메소드나 다양한 기능을 추가 하기 위한 방법이다. 즉 이름 그대로 확장의 개념이다. 내장된 클래스나 라이브러라, 프레임워크에 다양한 기능을 추가하기 위해서 사용함 선언 extension 기존타입이름 { // 새로운 기능 , 추가될 기능 } 예시 import UIKit extension Double{ var DDouble : D..
스위프트 공식문서를 참조하였습니다. 정의 정의 Super 오버라이드(override) 오버로딩(overloading) vs 오버라이딩(overriding) 오버로딩(overloading) 오버라이딩(overriding) call by reference 정의 클래스는 메소드, 프로퍼티와 다른 특징을 가지고 있는데, 이는 다른 클래스로부터 상속을 받을수 있는것이다. 상속받은 프로퍼티에 프로퍼티 옵저버를 설정해서 값 설정에 반응을 해줄수도 있다. single inheritance : 스위프트에서는 단 하나의 부모 클래스만 상속 받을수 있다. 정의 import UIKit class Man{ var age: Int = 1 var weight: Double = 3.5 func display(){ print("나이=..
스위프트 공식문서를 참조하였습니다. 정의 서브스크립트 문법 서브스크립트 예시 정의 서브 스크립트란, 클래스, 구조체, 열거형에서 스크립트를 지정해서 특정 멤버 엘리먼트에 접근할수 있는 문법을 의미한다. 서브스크립트를 사용하면, 특정 메소드 없이도 값을 할당 하거나 가져올수 있다. 서브스크립트 문법 서브스크립트 선언 문법은 읽고-쓰기(read-write), 혹은 읽기 전용(read only) 만 가능하다. 계산된 프로퍼티(computed property)와 동일하게 , getter, setter 방식을 사용한다. subscript(index: Int) -> Int { get{ } set(newValue) { 액션 } } 만일 이렇게 get set을 사용하지 않고 set에 대한 인자 값을 따로 사용하지 않는..
스위프트 공식문서를 참조하였습니다. 정의 선언 self 프로퍼티 타입 메소드 inout 정의 특정 타입의 구조체, 클래스, 열거형과 관련된 함수를 메소드라고 한다. 또한 특정 타입의 인스턴스에서 실행할수 있는 메소드를 인스턴스 메소드라고 하며 특정 타입과 관련된 메소드를 타입메소드 라고 한다. objective-c 와 swift의 차이는 objective-c는 클래스 타입에서만 메소드 선언이 가능하지만, 스위프트는 클래스, 열거형, 구조체 모두에서 선언이 가능하다. 선언 import UIKit class Man{ var number:Int = 0 func increas()->Int{ return number+1 } } var count = Man() print(count.number) // 0 print..
스위프트 공식문서를 참조하였습니다. 지연 저장 프로퍼티( lazy stored property) 읽기전용 계산된 프로퍼티 (read only property) 프로퍼티 옵저버 (property observer) 타입 프로퍼티(type property) 구조체와 클래스의 프로퍼티 앞선 클래스와 구조체의 내용에서 프로퍼티를 한번 다루었고, 거기에서 부족한 내요을 추가 하였습니다. 지연 저장 프로퍼티( lazy stored property) 지연 저장 프로퍼티는 값이 처음으로 사용되기 전에는 값이 저장되어지지 않는 프로퍼티다. 지연저장으로 사용하기 위해서는 프로퍼티 선언 앞에 lazy 를 붙여주면 된다. 하지만 중요한점은 지연 프로퍼티는 반드시 변수 var로 선언해줘야 하는데 이는 최초에 선언할때, 빈 프로퍼..
스위프트 공식문서를 참조하였습니다. 클래스(class) vs 객체(object) vs 인스턴스(instance) 클래스(class) 객체(object) 인스턴스(instance) 구조체(struct) 구조체의 선언과 구조체 인스턴스 생성 구조체 프로퍼티 접근 클래스의 기본 구조 프로퍼티(property) 프로퍼티 선언 형태 프로퍼티의 종류(stored, calculated(computed) property) getter setter getter, setter 정리 self 인스턴스(instance) 인스턴스 선언 형태 인스턴스 초기화 함수 init() 클래스(class or type) 메서드(method) 식별연산자 클래스(class) vs 객체(object) vs 인스턴스(instance) 먼저 클래스..
스위프트 공식문서를 참조하였습니다. 열거형 문법 메소드에서도 사용가능 열거형의 rawValue enum의 사용 하는 방향에 대해서 열거형 문법 import UIKit enum Compass { case North, South, East, West } var direction : Compass = .South switch direction { case .East: print("east") case .West: print("west") case .South: print("South") case .North: print("North") } print(type(of: direction)) 그냥 이런식으로 사용가능하다고 생각하자. 메소드에서도 사용가능 import UIKit enum Compass { case N..