목록Swift/CS (15)
HIT해
ifLet 어디서 많이 보지 않았는가 바로 if let 이랑 비슷한 역할을 한다. 주로 상태가 존재하는 경우에만 특정 뷰의 Modifier를 적용하려고 할때 사용된다.상태의 값이 존재할때만 활성화되고 그렇지 않다면 무시된다. 예시 코드를 보자 1. Reducer@Reducerstruct AlertAndConfirmationDialog { @ObservableState struct State: Equatable { @Presents var alert: AlertState? @Presents var confirmationDialog: ConfirmationDialogState? var count = 0 } enum Action { case alert(PresentationActi..
https://developer.apple.com/documentation/swiftui/view/refreshable(action:) refreshable(action:) | Apple Developer DocumentationMarks this view as refreshable.developer.apple.com nonisolatedfunc refreshable(action: @escaping () async -> Void) -> some View 간단하게 새로고침을 구현할 수 있는 키워드다. 새로고침 UI가 상단에 생성되고 안에 정의한 함수들이 실행된다 사용방법struct RefreshableView: View { let store: StoreOf @State var isLoading = fa..
NavigationStack | Apple Developer DocumentationA view that displays a root view and enables you to present additional views over the root view.developer.apple.com NavigationStack 이란?RootView를 표시하고 RootView 위에 추가 뷰를 표시할수 있는 뷰. iOS 16.0 이상에서 동작한다.@MainActor @preconcurrencystruct NavigationStack where Root : View 공식문서상에 적힌 개요를 확인해보자. 1. 기본 네비게이션 스택NavigationStack을 사용하여 뷰의 스택을 루트 뷰 위에 표시한다. 사용자는 Nav..
store.send().finish() vs store.send()store.send():이 코드는 TCA(Typically Composable Architecture)에서 액션을 스토어로 전송한다.기본적으로 이 메서드는 비동기 작업을 시작하고, 해당 액션이 처리되는 동안의 작업을 관리하지 않는다.store.send().finish():finish()는 send(_:) 메서드가 반환하는 Effect의 메서드.finish()는 해당 액션이 완료되었음을 나타내는 신호를 보낸다finish의 역할비동기 작업의 완료 신호:finish()는 비동기 작업이 완료되었음을 나타내는 신호를 보낸다.비동기 효과가 끝났을 때, 상태를 업데이트하거나 후속 작업을 처리하는 데 사용된다.상태 동기화:액션이 완료된 후, 상태가 올바..
defer란?Swift에서 코드 블록의 마지막에 실행될 코드를 예약할때 사용된다.defer 블록내의 코드는 해당 코드 블록이 종료되기 직전에 실행된다. 자원 해제, 상태 복구, 정리 작업과 같이 코드 블록이 끝날 때 반드시 수행되어야하는 작업을 지정하는데 쓰인다. func exampleFunction() { print("Start") defer { print("Deferred: This will run at the end of the function") } print("End")} 실행결과StartEndDeferred: This will run at the end of the function
소스코드 개요더보기이 화면에서는 \를 사용하여 작은 기능을 사용하여 더 큰 기능으로 구성하는 방법을 보여 줍니다리듀서 빌더와 'Scope' 리듀서, 매장의 'Scope' 오퍼레이터.카운터 화면의 도메인을 재사용하여 두 번 더 큰 도메인에 임베딩합니다 전체 코드@Reducerstruct TwoCounters { @ObservableState struct State: Equatable { var counter5 = Counter.State() var counter2 = Counter.State() } enum Action { case counter1(Counter.Action) case counter2(Counter.Action) } var body: some Reducer ..
GCD (Grand Central Dispatch) 란?iOS에서 멀티코어 프로세서를 효율적으로 활용하여 동시에 여러 작업을 실행할 수 있게 해주는 프레임워크이다. GCD는 멀티스레드 환경에서 작업을 적절히 분배하여 병렬 처리를 지원하고, 스레드 관리를 간소화하는 방법을 제공한다.주요 개념Dispatch Queue: GCD에서 작업을 큐에 추가하면, 이 큐를 통해 작업이 스레드에서 실행된다. 큐는 FIFO(First-In-First-Out) 방식으로 작업을 처리하며, 동시성 처리를 지원한다.Types of Dispatch Queues:Global Queue: 전역 큐로, 여러 큐 중 하나를 선택하여 사용하며, 주로 비동기 작업을 처리할 때 사용된다.Main Queue: 주 스레드에서 실행되는 큐로, UI..
KVO vs KVCKey-Value Coding (KVC)와 Key-Value Observing (KVO)는 Objective-C와 Swift에서 객체의 프로퍼티에 동적으로 접근하거나 변경 사항을 관찰하는 메커니즘입니다.Key-Value Coding (KVC)개념: KVC는 객체의 프로퍼티를 문자열 키를 사용하여 간접적으로 접근하는 방법을 제공한다. 이를 통해 프로퍼티의 값을 설정하거나 조회할 수 있다.사용 예: KVC를 사용하면 객체의 프로퍼티에 동적으로 접근하거나 설정할 수 있다. 예를 들어, setValue:forKey:와 valueForKey: 메서드를 사용하여 객체의 속성을 조작할 수 있다.// Objective-C 예시Person *person = [[Person alloc] init];[pe..