본문 바로가기
반응형

iOS67

[Swift] global과 static은 기본적으로 lazy gobal과 static의 Lazy 초기화 Lazy 초기화란?Lazy 초기화는 변수가 실제로 사용될 때까지 초기화를 지연하는 기법을 말한다. 이는 프로그램의 시작 시점에 불필요한 메모리 사용을 피하고, 초기화 비용을 줄이기 위해 사용된다. 다시 말해, 변수가 처음 사용되기 전까지는 초기화되지 않는다.공식문서에서는 "lazy 저장 변수는 이것이 처음 사용되기 전까지 초기값이 계산되지 않는 프로퍼티 입니다. 사용자는 선언부에 lazy 수정자를 붙임으로써 lazy 저장 변수를 나타낼 수 있습니다."라고 되어있다.사용자는 항상 lazy 프로퍼티를 variable로 선언해야만 한다.왜냐하면 이 프로퍼트의 초기값을 인스턴스 초기화가 완료된 시점까지 알 수 없기 때문이다.상수 프로퍼티는 초기화가 끝나기전까지 반드시 .. 2024. 7. 30.
[Swift/UIKit] UIColor를 HexString으로 받는 Extension extension UIColor { convenience init(hexString: String) { let hex = hexString.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) var int = UInt64() Scanner(string: hex).scanHexInt64(&int) let alpha, red, green, blue: UInt64 switch hex.count { case 3: (alpha, red, green, blue) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0.. 2024. 7. 19.
[Swift] NSObjectProtocol, NSObject Cannot declare conformance to 'NSObjectProtocol' in Swift;NSObjectNSObject는 모든 Objective-C 클래스의 기본 클래스이다.NSObject는 기본적으로 MacOs와 iOS 최상위에 위치하고 있다. 이것은 모든 객체가 공통적으로 가져야 하는 기본적인 동작을 정의하며, 객체 지향 프로그래밍의 근간이 되기도 한다. 객체 초기화 및 메모리 관리:init: 기본 초기화 메서드deinit: 객체가 해제될 때 호출되는 메서드로, Swift에서는 deinit 키워드로 사용객체 비교 및 해싱:isEqual(_:)와 hash: 객체 비교와 해싱을 위한 메서드런타임 클래스 정보:class와 isKind(of:): 객체의 클래스 정보를 제공하고, 특정 클래스의 .. 2024. 7. 16.
[RxSwift] 재사용으로 인해, 테이블뷰 셀안에 버튼이 반응하지 않을때 private func setupActions() { agreeBtn.rx.tap .bind(to: agreeButtonTapped) .disposed(by: disposeBag) goBtn.rx.tap .bind(to: goButtonTapped) .disposed(by: disposeBag) } override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) [agre.. 2024. 7. 10.
[Swift] 고차함수 (map, filter, reduce, compactMap, flatMap) 고차함수 (Higher-order Function)Swift에서 고차함수(Higher-Order Function)는 다른 함수를 인자로 받거나 함수를 반환하는 함수입니다. 이러한 함수는 코드의 재사용성을 높이고, 함수형 프로그래밍 스타일을 사용할 수 있게 해줍니다1. mapmap 함수는 배열의 각 요소에 동일한 연산을 적용하여 새로운 배열을 반환합니다.let numbers = [1, 2, 3, 4, 5]let squaredNumbers = numbers.map { $0 * $0 }print(squaredNumbers) // [1, 4, 9, 16, 25] 2. filterfilter 함수는 배열의 요소 중 주어진 조건을 만족하는 요소들만을 포함하는 새로운 배열을 반환합니다.let numbers = [1,.. 2024. 7. 5.
[Swift] 타입에러 경고 Cast from 'JSON?' to unrelated type ' ' always fails 해당 경고는 Swift에서 JSON? 타입을 다른 타입(예: [[String: Any]] 또는 Data)으로 캐스팅하려고 할 때 발생합니다.경고가 뜨는 이유는 Swift의 타입 시스템에서 JSON 타입이 예상하는 타입과 호환되지 않기 때문입니다.해결하기 위해서는 JSON 타입을 적절하게 처리하고, 이를 원하는 타입으로 변환해야 합니다.if let res = res { let data = try res.rawData() // JSON 데이터를 Data로 변환 let terms = try JSONDecoder().decode([DTO].self, from: data) // Data를 [DTO]로 디코딩 .. 2024. 7. 4.
반응형