[Swift] 알고리즘을 대비한 메서드들
Language/Swift2024. 2. 18. 21:55[Swift] 알고리즘을 대비한 메서드들

반복문 Stride 지정된 값만큼의 시퀀스를 반환합니다. 이해를 쉽게 이야기하면 stride(from:to:by:) 는 from:이상 to:미만의 구간과 동일합니다. stride(from:through:by:) 는 from: 이상 through: 이하 구간과 동일합니다. stride(from: 0, to: 10, by: 2).forEach { print($0, terminator: ", ") } // 0, 2, 4, 6, 8 stride(from: 0, through: 10, by: 3).forEach { print($0, terminator: ", ") } // 0, 3, 6, 9 stride(from: 20, through: 10, by: -2).forEach { print($0, terminato..

[Swift] UIImage, CGImage 그리고 CIImage 언제 사용되나
Language/Swift2024. 2. 14. 17:02[Swift] UIImage, CGImage 그리고 CIImage 언제 사용되나

우선 각 Image가 무엇을 나타내는지 보려고 합니다. UIImage 모든 이미지 형식에 대한 데이터를 나타내며 관리 가능합니다. immutable 특성으로 항상 이미지 데이터에서 이미지를 만들어야 합니다. 이미지 객체의 불변 특성은 모든 스레드에서 안전하게 만들고 사용할 수 있음을 의미 UIImageView에 있는 이미지를 업데이트하려면 새로운 UIImage를 만들어서 설정해야 한다. 따라서 이미지를 변경할 때에는 CGImage, CIImage 의 데이터를 가져와 변환하고 UIImage를 만들어야 합니다. 이미지 객체는 모든 플랫폼 네이티브 이미지 형식을 지원하지만 PNG 또는 JPEG 파일을 사용하는 것이 좋습니다. 두 가지 형식을 모두 읽고 표시하는 데 최적화되어 있으며, 다른 이미지 형식보다 더 ..

[Swift] Timer vs DispatchSourceTimer
Language/Swift2023. 11. 26. 13:56[Swift] Timer vs DispatchSourceTimer

Timer vs DispatchSourceTimer Timer의 기능을 활용 하는 방법 2가지, Timer와 DispatchSourceTimer에 대해 알아보겠습니다 Timer 특정 시간 간격이 경과한 후 실행되어 지정된 메시지를 대상 개체로 보냅니다. "Timers work in conjunction with run loops" main run loop는 Timer에 대한 강력한 참조를 유지하므로 실행 루프를 추가한 후 참조를 유지할 필요가 없습니다. main thread는 앱이 포그라운드에 있을 때 동작합니다. long run loop callout 장기 실행 루프 콜아웃 while the run loop is in a mode that isn't monitoring the timer 타이머를 모니터..

[Swift] AttributedString
Language/Swift2023. 11. 16. 23:58[Swift] AttributedString

iOS 15 이후에 사용되며 개별 문자 또는 문자 범위에 대한 attributes이 있는 문자열입니다. Attributes 시각적 스타일, 안내 액세스를 위한 접근성, 데이터 원본 간 연결을 위한 하이퍼링크 데이터와 같은 특성을 제공합니다. Attribute key는 각 속성의 이름과 값 유형을 제공합니다. Foundation 및 SwiftUI와 같은 frameworks는 공통 키를 정의하며, custom extension에서 고유한 키를 정의할 수 있습니다. String Attributes 가장 자세하게 설명하면 다음과 같이 AttributeContainer를 만들고 기존 특성 문자열에 병합하여 특성을 설정합니다. var attributedString = AttributedString("This is ..

[Swift] UIButton Configuration
Language/Swift2023. 11. 15. 11:54[Swift] UIButton Configuration

iOS 15.0 이상부터는 UIButton 구성을 좀 더 쉽게 도와주는 configuration이 생겼습니다. configuration은 UIButton과 그 내용의 모양과 동작을 지정할 수 있습니다. configuration configuration은 아래와 같이 표현됩니다. plain gray tinted filled borderless bordered borderedTinted borderedProminent func update(for: UIButton) -> UIButton.Configuration 지정된 버튼에 대해 업데이트된 구성 사본을 반환할 수도 있습니다. Configuring titles title 및 subtitle의 설정에 대한 내용입니다. title과 subtitle은 예상 가능한..

[Swift] AutoLayout 오토레이아웃 변경
Language/Swift2023. 11. 7. 10:41[Swift] AutoLayout 오토레이아웃 변경

AutoLayout의 설정에서 Changing Constraints에 대한 방법을 적어보려고 합니다. 이전 까지는 priority를 사용하여 변경을 하여 해결을 해왔었습니다. 하지만 그래프 라이브러리를 만들면서 priority만으로 해결하기 복잡한 경우에 어떤 방법이 있는지 말하려고 합니다. 제약 조건을 변경하는 방법 - 제약 조건 활성화 또는 비활성화하기 - 제약 조건의 상수 값 변경하기 - 제약 조건의 우선 순위 변경 - 뷰 계층에서 뷰 제거하기 이상적으로 대부분의 제약 조건은 아래와 같이 만들어야 합니다 - Interface Builder에서 설정 - 컨트롤러의 initial setup 설정 중에 ViewController 에서 programming 방식으로 설정(예: viewDidLoad) 런타..

[SwiftUI] WWDC23 Discover Observation in SwiftUI
Language/Swift2023. 9. 17. 00:08[SwiftUI] WWDC23 Discover Observation in SwiftUI

Observation define model UI respond to changes to that model developing with SwiftUI seamless and intuitive(원활하고 직관적) What is Observation? Observation new Swift feature tracking changes to properties New in Swift 5.9 new macro system @Observable class FoodTruckModel { var orders: [Order] = [] var donuts = Donut.all } @Observable Macro 관찰할 수 있는 형식으로 확장 컴파일러에게 변환하도록 지시 Tracks access 해당 속성에 대한 액세스..

ARC, Reference Count 그리고 optional unowned (with WWDC21 ARC in Swift)
Language/Swift2023. 8. 12. 12:17ARC, Reference Count 그리고 optional unowned (with WWDC21 ARC in Swift)

Automatic Reference Counting 앱의 메모리 사용량을 추적하고 관리합니다. 대부분의 경우, 메모리 관리는 Swift에서 작동 한다는 것을 의미하며 메모리 관리를 직접 생각할 필요가 없습니다. 해당 인스턴스가 더 이상 필요하지 않을 때 인스턴트에서 사용하는 메모리를 자동으로 해제합니다. Reference Counting은 class의 인스턴스에만 해당됩니다. ARC Works 클래스의 새 인스턴스를 생성 후, ARC는 해당 인스턴스에 대한 정보를 저장하기 위해 메모리 청크를 할당 인스턴스 형식에 대한 정보와 해당 인스턴스와 연결된 저장된 속성 값을 저장 인스턴스가 더 이상 필요하지 않은 경우 메모리를 해제 현재 각 클래스 인스턴스를 참조하는 속성, 상수 및 변수의 수를 추적 해당 인스턴..

image