일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DBMS
- sql
- 데이터베이스
- 네트워크
- javascript
- 스프링부트
- 스프링
- 오라클
- jenkins
- 티스토리챌린지
- 다이어리
- 42seoul
- Spring
- swift
- CI
- springboot
- 리눅스
- JPA
- 오블완
- 프로그래밍언어론
- AI
- MySQL
- 인공지능
- 스프링부트 웹 소켓
- 아이패드다이어리
- libasm
- CD
- 소켓
- IOS
- Xcode
- Today
- Total
목록프로그래밍 언어/swift (12)
Hi yoahn 개발블로그
1. Method 1 ) 인스턴스 메소드 - 특정 클래스, 구조체, 열거형의 인스턴스에 속하는 함수 - 인스턴스 프로퍼티의 접근 및 수정 방법을 제공 or 인스턴스 목적과 관련된 기능 제공 - 인스턴스 메소드는 자신이 속한 타입의 특정 인스턴스에서만 호출 가능 ★ 인스턴스가 없으면 호출할 수 없다. ★ let counter = Counter()// count = 0 (기본값) counter.increment()//count = 1 counter.increment(by: 5)//count = 6 counter.reset()//count = 0 2 ) 인스턴스 메소드 내부에서 값 타입 변수 (구조체, 열거형) 수정 ★ 기본적으로 값 타입의 프로퍼티들은 해당 인스턴스 메소드 내에서 수정 불가 - 수정이 필요한..
1. 타입 프로퍼티 - 프로퍼티를 타입 자체와 연결할 수도 있다 - 타입 프로퍼티는 모든 타입이 사용할 수 있는 상수 프로퍼티 (static 상수) or 글로벌 변수 프로퍼티 (static 변수, 특정 타입의 모든 인스턴스의 값을 정의하는데 유용) 저장 타입 프로퍼티 - 변수 / 상수 연산 타입 프로퍼티 - 항상 변수 프로퍼티 저장 타입 프로퍼티 -> 항상 기본값 지정 Why? 초기화 시, 타입 자체에는 저장 타입 프로퍼티에 값을 할당할 initializer가 없기 때문이다 저장 타입 프로퍼티는 처음 액세스 할 때는 lazy initialized 한다. 한번만 초기화 되는 것이 보증되어 있음 -> lazy 키워드 사용 안해도 됨 lazy initialization 인스턴스의 생성을 메소드 호출 시점에 생..
1. 오류처리 스위프트에서 오류(Error)는 Error라는 프로토콜을 준수하는 타입의 값을 통해 표현됩니다. Error 프로토콜은 사실상 요구사항이 없는 빈 프로토콜일 뿐이지만, 오류를 표현하기 위한 타입(주로 열거형)은 이 프로토콜을 채택합니다. 스위프트의 열거형은 오류의 종류를 나타내기에 아주 적합한 기능입니다. 연관 값을 통해 오류에 관한 부가 정보를 제공할 수도 있습니다. 1.1 오류 표현 Error 프로토콜과 열거형을 통해서 오류를 표현 enum VendingMachineError: Error { case invalidInput case insufficientFunds(moneyNeeded: Int) case outOfStock } 연관값 각 하나의 타입에 대해 인스턴스마다 다른 값을 가지게 ..
1. Assert / guard 애플리케이션이 동작 도중에 생성하는 다양한 연산 결과값을 동적으로 확인하고 안전하게 처리할 수 있도록 확인하고 빠르게 처리할 수 있습니다. 1.1 Assertion assert(_:_:file:line:) 함수를 사용합니다. assert 함수는 디버깅 모드에서만 동작합니다. 배포하는 애플리케이션에서는 제외됩니다. 예상했던 조건의 검증을 위하여 사용합니다. var someInt: Int = 0 // 검증 조건과 실패시 나타날 문구를 작성해 줍니다 // 검증 조건에 부합하므로 지나갑니다 // 검증 조건에 부합하지 않는 경우 메시지를 출력하고 멈춤 assert(someInt == 0, "someInt != 0") someInt = 1 //assert(someInt == 0) /..
1. 옵셔널 체이닝 옵셔널 체이닝은 옵셔널의 내부의 내부의 내부로 옵셔널이 연결되어 있을 때 유용하게 활용할 수 있습니다. 매번 nil 확인을 하지 않고 최종적으로 원하는 값이 있는지 없는지 확인할 수 있습니다. // 예제 클래스 // 사람 클래스 class Person { var name: String var job: String? var home: Apartment? init(name: String) { self.name = name } } // 사람이 사는 집 클래스 class Apartment { var buildingNumber: String var roomNumber: String var `guard`: Person? var owner: Person? init(dong: String, ho: ..
1. 상속 상속은 클래스, 프로토콜 등에서 가능합니다. 열거형, 구조체는 상속이 불가능합니다. 스위프트의 클래스는 단일상속으로, 다중상속을 지원하지 않습니다. 생성자는 자동 상속이 되지 않는다. class 이름: 상속받을 클래스 이름 { } 지정 생성자를 재정의 할 때는 override 키워드를 붙여야 한다. 자식 클래스에서 지정 생성자를 편의 생성자로 변경할 수도 있지만 이때도 override 를 붙여야 한다. 부모 클래스의 편의 생성자를 자식 클래스에서 직접 호출할 수 없다. 부모 클래스의 생성자와 동일한 이름을 사용하는 경우 override를 붙여줘야 한다. https://icksw.tistory.com/49 [Swift 문법] Swift 공식 문서 정리 - 14 - Initialization (생..
1. 클로저 클로저는 실행가능한 코드 블럭입니다. 함수와 다르게 이름정의는 필요하지는 않지만, 매개변수 전달과 반환 값이 존재 할 수 있다는 점이 동일합니다. 함수는 이름이 있는 클로저입니다. 일급객체로 전달인자, 변수, 상수 등에 저장 및 전달이 가능합니다. 1.1 클로저 문법 클로저는 중괄호 { }로 감싸져있습니다. 괄호를 이용해 파라미터를 정의합니다. (매개변수 필요 없으면 빈칸) -> 을 이용해 반환 타입을 명시합니다. (없으면 Void) "in" 키워드를 이용해 실행 코드와 분리합니다. { (매개변수 목록) -> 반환타입 in 실행 코드 } 1.2 클로저 사용 // sum이라는 상수에 클로저를 할당 let sum: (Int, Int) -> Int = { (a: Int, b: Int) in ret..
1. 구조체 struct 이름 { /* 구현부 */ } UpperCamelCase 사용 프로퍼티: 인스턴스 변수 (타입 안에 들어있는 변수) 인스턴스 프로퍼티: var, let 타입 프로퍼티: static , 타입에서 사용할 수 있는 프로퍼티 메소드: 구조체 안에 들어있는 함수 (타입 안에 들어있는 함수) 인스턴스 메서드: 인스턴스가 사용 타입 메서드: static, 타입 자체가 사용하는 메서드 struct Sample { // 가변 프로퍼티(값 변경 가능) var mutableProperty: Int = 100 // 불변 프로퍼티(값 변경 불가능) let immutableProperty: Int = 100 // 타입 프로퍼티(static 키워드 사용 : 타입 자체가 사용하는 프로퍼티) static va..
1. 함수 func 함수이름(매개변수이름1: 매개변수타입1, 매개변수이름2: 매개변수타입2...) -> 반환타입(없으면 Void, 생략 가능) { 함수 구현부 return 반환값 } 호출 방법 함수이름(매개변수이름1: 값,,,) 1) 매개변수 기본 값 지정 func greeting(friend: String, me: String = "yoahn"){ print("hello \(friend)! I'm \(me)") } 기본값을 가지는 매개변수는 호출 시 생략 가능 2) 전달인자 레이블 함수를 호출할 때 함수 사용자의 입장에서 매개변수의 역할을 좀 더 명확하게 표현하고자 할 때 사용합니다. 전달인자 레이블은 변경하여 동일한 이름의 함수를 중복으로 생성가능합니다.(함수 중복정의 가능) 함수 내부에서 전달인자를..
1) Swift 소개 스위프트는 문법 표현의 다양성이 높은 언어 2) 명명법 / 콘솔로그 / 문자열 보간법 Lower Camel Case : 함수, 메소드, 변수, 상수 Upper Camel Case : 타입(클래스, 구조체, enum, extension) 3) 콘솔로그 print -> 주어진 문자열을 출력 dump -> 클래스의 인스턴스를 콘솔에 찍거나, 딕셔너리를 더 자세히 찍 4) 문자열 보간법 문자열 내에 변수 또는 상수의 값을 표현하기 위해 사용 let age: Int = 10 “안녕하세요! 저는 \\(age)살입니다” 4) 상수, 변수 선언 - 상수 let 이름: 타입 = 값 차후에 값 변경 불가 상수 선언 후 할당 한번만 가능 - 변수 var 이름: 타입 = 값 차후에 값 변경 가능 변수 /..