우선, 간단하게 lazy, tpye property 가 무엇인지 정리해보면 lazy property 는 호출할 때 연산을 하는 지연 연산 프로퍼티이다. type property 는 인스턴스에서 호출하는 것이 아닌 타입에서 호출될 때 한 번만 메모리에 올라가는 프로퍼티이다. ✅ lazy property lazy property 는 인스턴스를 생성할 때 초기값이 연산되지 않고, 호출될 때 지연 연산으로 생성이 되면서 메모리에 올라간다. 그래서 var 로만 사용할 수 있다. 이후 재호출할 때는 다시 초기화가 진행되지 않고 이전에 생성된 변수를 그대로 사용한다. 이를 통해 사용하기 전의 프로퍼티에 대한 메모리를 효율적으로 사용할 수 있다. ✅ type property type property 는 인스턴스를 생성..
클래스의 인스턴스 메소드는타입의 구조 자신의 프로퍼티 값을 수정할 때 신경 쓸 필요가 없지만, 값 타입의 구조체나 열거형 등에서는 인스턴스 메소드가 내부 프로퍼티 값을 변경할 수 없습니다. 이러한 경우 오류를 해결하기 위해서 mutating 키워드를 붙여서 명시해야 합니다. 또한, 프로토콜이 요구하는 메소드가 내부의 프로퍼티를 변경해야 한다면 메소드 앞에 mutating 키워드를 붙여 명시해야 합니다. 그렇다면 왜 값 타입의 인스턴스 메소드는 내부 프로퍼티를 변경할 수 없으며 mutating 은 왜 사용해야 하는 것일까? Swift 에서 값 타입이 복사되었을 때는 같은 주소를 가리키다가 변경이 있을 때는 복사하여 수정하게 되는 COW(Copy on Write)가 있습니다. 값 타입의 인스턴스 메소드로 내..
내용 New and Updates 로 등장한 뉴스로 Dynamic Island 를 살펴보자. 🗞 Live Activities now available in beta(2022.7.27) Live Activities now available in beta - Latest News - Apple Developer Live Activities help people stay on top of what’s happening in your app in real time, right from the Lock Screen. You can now get started with Live Activities and the new ActivityKit framework, which are available in the beta..
Xcode 14 업데이트 후 KakaoSDKAuth에서 저장 프로퍼티에 @available 이 붙는 곳에 다음과 같은 에러 메시지가 등장하였습니다. Stored properties cannot be marked potentially unavailable with @available 에러를 해결하기 위해서 KakaoSDKAuth 를 업데이트 하였습니다. 다행히 검색해보니 데브톡에서 문의를 통해 Xcode 14 배타버전 때 문제를 발견하여 업데이트를 한 지 좀 되었습니다. 데브톡 - Xcode 14 업데이트 빌드 오류 문의 Kakao SDK 변경 이력 아래는 Xcode 14 의 릴리즈 노트에서 가져왔습니다. Stored properties in Swift can’t have type information t..
열거형에 포함된 모든 케이스에 대해서 순회하고 싶을 때가 있습니다. 이때는 CaseIterable 프로토콜을 채택하면 allCase 라는 타입 프로퍼티를 통해 모든 케이스에 대한 컬렉션을 생성할 수 있습니다. ✅ CaseIterable 을 채택하여 enum 순회 import Foundation enum School: CaseIterable { case elementary case middle case high case college } let allCase: [School] = School.allCases print(allCase) // [School.elementary, School.middle, School.high, School.college] 이때 원시값을 갖는 열거형을 만들기 위해서 자료형을 상..
obsoleted @available(macOS, obsoleted: 12.0) deprecated @available(macOS, deprecated: 12.0) 동시 사용 import Foundation enum School: String{ case elementary = "초등학교" case middle = "중학교" case high = "고등학교" case college = "대학교" // deprecated : 더이상 사용되지 않는(경고) 첫번째 버전. // obsoleted : 폐기되어 사용할 수 없는(에러) 첫번째 버전. @available(iOS, deprecated: 13.0, obsoleted: 14.0) // -> iOS 13 부터는 사용되지 않는 deprecated 경고. // -..
함수는 1급시민이기 때문에 상수나 변수에 참조를 할당할 수 있습니다. 1급시민(1급객체)란? 변수나 데이터 구조 안에 담을 수 있음 파라미터로 전달 가능 반환값으로 사용 가능 위의 특징을 가지면 1급시민으로 취급한다. swift 에서 함수는 1급 시민이다. 그래서 다음과 같이 사용이 가능하다. func someFunc(paramA: Any, paramB: Any) { print("someFunc called") } // ✅ 변수에 함수의 참조를 할당할 수 있습니다. var function = someFunc(paramA:paramB:) // ✅ 다음과같이 할당된 변수에 매개변수를 전달하여 사용할 수 있습니다. function(1, 2) 출처: Swift 일급객체(First-class object) 일급시..
각 언어들이 지원하는 클래스를 통해서 OOP 를 구현할 수 있는 것이지 OOP 의 객체가 곧 클래스는 아니다. OOP 의 4가지 특징 1️⃣ 캡슐화, Encapsulation 즉 캡슐 안에 담는다고 하여 '캡슐화' 라고 부르며, 여기서 말하는 단위나 캡슐이 곧 프로그래밍 언어에서 사용되는 객체 이다. 변수와 함수를 하나로 묶는 것. 데이터를 외부에서 접근하는 것을 방지하고, 메서드를 통해서만 접근할 수 있게 한다. 2가지 관점 데이터 캡슐화(상태-행위 캡슐화) : 객체는 상태와 행동을 하나의 단위로 묶는 자율적 실체 은닉화 : 외부에서 객체의 상태를 변경할 수 없도록 은닉. ex. 접근 제어자 객체가 다른 객체로 부터 독립적이고, 이것은 복잡도가 낮아지는 것으로 이어진다. 복잡성이 줄면 코..
- rxswift
- UserDefaults
- OpenSourceLibrary
- configurable widget
- Protocol
- SwiftUI
- MVVM
- containerBackground
- MOYA
- 서버통신
- WWDC22
- Firebase
- IOS
- urlsession
- APNS
- WidgetKit
- Widget
- projectsetting
- Notification
- WWDC
- RxCocoa
- github
- 2022 KAKAO TECH INTERNSHIP
- watchOS
- async/await
- CloneCoding
- Algorithm
- Objective-C
- Swift
- YPImagePicker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Total
- Today
- Yesterday