일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클린 코드
- clean architecture
- ribs
- 리펙토링
- UITextView
- tableView
- map
- SWIFT
- 스위프트
- Protocol
- swift documentation
- UICollectionView
- 애니메이션
- Observable
- HIG
- uiscrollview
- 리팩토링
- Clean Code
- swiftUI
- RxCocoa
- ios
- Xcode
- uitableview
- Refactoring
- collectionview
- Human interface guide
- rxswift
- combine
- 리펙터링
- MVVM
- Today
- Total
목록스위프트 (16)
김종권의 iOS 앱 개발 알아가기
Memory Safety (메모리 안전) atomic: Swift는 메모리의 위치를 수정하는 코드가 해당 메모리에 독점적으로 액세스할 수 있도록 요구하여 동일한 메모리 영역에 다중 액세스가 충돌하지 않는 성질 메모리 Access conflicting 읽기 access, 쓰기 access // A write access to the memory where one is stored. var one = 1 // A read access from the memory where one is stored. print("We're number \(one)!") 메모리 access conflicting: 코드의 다른 부분이 동시에 메모리의 동일한 위치에 access하는 경우 발생 시간에 따라 같은 input을 주어도 ..
Error Handling 개념: 프로그램의 오류 조건에 응답하고 복구하는 프로세스 Swift에서는 런타임에 복구 가능한 오류를 다음 방법으로 처리 throwing, catching, propagating, manipulating Throwing Error (에러 던지기) Swift에서의 오류는 Error protocol을 conform하는 값으로 정의 enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock } Error Handling 함수에서 오류가 발생하면 프로그램의 흐름이 변경되므로 코드에서 오류가 발생할 수 있는 위치를 빠르게 식별해야 하는데, 이 ..
Subscripts 배열에서의 Random Access하기 위해 index값을 사용하는데, 이때 인덱스 값이 'Subscripts' ex) arr[3] = 1 swift에서는 class, struct, enum의 []연산자를 subscript 키워드를 통해 정의 가능 swift의 subscript 키워드 swift는 subscript를 정의하여 sequence가 아니더라도 특정 연산이 되게끔 가능 struct TimeTable { let multiplier: Int subscript(index: Int) -> Int { return multiplier * index } } let threeTimeTable = TimeTable(multiplier: 3) print(threeTimeTable[5]) // ..
Method 메서드의 정의: 특정 유형과 관련된 함수 인스턴스 작업을 위한 특정 작업 Instance Method 특정 클래스, 구조, 열거 형의 인스턴스에 속하는 함수 class Counter { var count = 0 func increment() { count += 1 } func increment(by amount: Int) { count += amount } func reset() { count = 0 } } let counter = Counter() // 1 counter.increment() // 1 counter.increment(by: 5) // 6 counter.reset() // 0 Self Property 클래스 내에서 self의 의미: 자체 인스턴스 메서드 내에서 현재 인스턴스를..
기초 개념은 다음 링크 참조 : 11. 코어 데이터(Core Data)의 개념 - (1) [iOS - swift] 12. 코어 데이터(Core Data)의 개념 - (1) * Core Data는 DataBase가 아님 ( Core Data는 ORM 매핑 프레임워크가 맞는 의미, 데이터 저장에 관한 일종의 프레임워크 ) 1. Core Data란? 1) In-Memory 방식 : 사용 하려는 모든 데이터는 우선 메모리에 로딩되.. ios-development.tistory.com 1. MO모델을 위한 엔터티 설정 1) 엔터티(데이터 저장 구조) 정의 : 레코드 단위의 데이터를 관리객체(Managed Object)로 만들기 위한 기본 모델 역할 담당 * AppDelegate.swfit에 코드가 추가된것을 확인..
1. 구조체와 클래스의 차이 - 클래스만이 가지고 있는 특성 : 상속, 타입 캐스팅, 소멸화 구문, 참조에 의한 전달 - 구조체만이 가지고 있는 특성 : Memberwise Initializer ( 모든 인자값을 받고 초기화 해주는 구문을 자동으로 생성) 1 2 3 4 5 6 7 8 9 10 struct MyStruct{ var a : Int = 1 var b : Int = 2 func f () -> () { } } MyStruct() // 기본 초기화 MyStruct(a: 1, b: 2) // 모든 인수 초기화 - 구조체는 값에 의한 복사이고 클래스는 주소를 넘겨줌 - 클래스는 메서드에서 멤버변수를 바꿀 수 있지만, 구조체는 메서드에서 멤버변수에 있는 값을 바꾸려면 mutating 키워드를 사용해야함 ..
1. 클로저표현식 : 익명함수, 주변 환경으로부터 값을 "캡쳐"(휘발성인 지역변수의 값이 저장되는 것)할 수 있는 경량 문법 즉, 클로저라는 것은 리턴된 타입(어떤 함수의 종료)을 참조할 때, 함수가 이미 종료된 시점에서 특정 변수를 참조하는 것 - 클로저표현식은 익명함수로 생각하면 편함 - func키워드, 함수이름 제거한 후 나머지만 표현 1) 기본 사용법 // 대입 후 실행 let a = { (v1: Int, v2: Int) -> Void in print("value1 = \(v1), value2 = \(v2)") } a(1,2) // 바로 실행 ({ (v1: Int, v2: Int) -> Void in print("value1 = \(v1), value2 = \(v2)") }) 2) 생략 // 정..
1. 함수 - 인자레이블 : 매개변수 이름 1 2 3 4 5 6 7 8 9 10 func myFunc(myValue: Int, myValue2: Int) -> (String, Int) { var ret : (String, Int) = (String(myValue + myValue2)!, myValue1) return ret } // myValue, myValue2가 인수레이블 myFunc(myValue: 123, myValue2: 13) // 함수호출방법 1 myFunc(myValue:myValue2:)(123, 13) //함수호출방법 2 - 위에서 함수 이름은, myFunc(myValue:myValue2) - defer 블록 : 함수안에서 return을 만나기 전에 defer블록을 만나게 되면, ret..