전체 글(19)
-
[TIL] 포도맛(스레드) 에러
프로젝트를 하던 중에 안나오던 포도맛 에러가 나왔다.. UI 업데이트 관련된 코드는 메인스레드에서 돌아가게 보장해줘라!! 라는 에러다 기능이 구현되는덴 지장이 없었지만 노란색이든 보라색이든 경고성 에러도 없어야 마음이 편하다,, 물론 없애는게 맞고..! 아무튼 나는 저 recordOrder 프로퍼티에 보라색 줄이 떠서 recordOrder가 문제가 있는줄 알고 쓰인 곳을 다 찾아봤다 근데 전혀 문제가 되는 곳이 없었다,, 뭐지?!?!?! 도저히 못찾겠어서 빌드해서 언제 저 에러가 뜨는지 확인해봤다 근데 이게 머선일,, 문제는 CompletionView가 나타날때 저 에러가 뜨는 것이었다.. isShowingCompletionView가 CompletionView을 호출하는 프로퍼티다 isShowingCom..
2024.03.16 -
[Git] History에서 특정 파일삭제
프로젝트가 마무리 될 때 쯤 원격저장소에 보이면 안되는 파일이 있었다,, 바로 GoogleService-Info.plist 파일이었다 분명 .gitignore에 설정을 해놓았지만 왜 때문인지 올라간 것 이었다 이유를 찾아보니 캐시 때문이라고 한다 우선 캐시를 삭제해주자..! 1. git rm -r --cached . 현재 branch의 모든 디렉토리 파일에서 캐시를 제거하는 명령어 git rm : 파일 삭제 -r : 하위 디렉토리 포함 --cached : 캐시 . : 디렉토리의 모든 파일 → 현재 branch에서 하위 디렉토리 포함 모든 파일에서 캐시를 삭제 이제 commit, push를 해주면 해당 파일은 안올라갈것이다 하지만 나의 상황은 이미 올라가서 History commit에서 삭제시켜줘야 한다 ..
2024.03.15 -
[ActionSheet] title 안나오게 할 수 있을까?
SwiftUI로 카카오톡 채팅을 구현하던중 채팅방을 나갈때 뜨는 sheet가 무엇인지 찾아보았다. 구글링을 해보니 ActionSheet라는 것을 쓴다고 한다. 구현 코드는 이렇다 ! struct ContentView: View { @State private var kakaoActionSheet = false var body: some View { VStack { Button { kakaoActionSheet = true } label: { Image(systemName: "door.left.hand.open") } .actionSheet(isPresented: $kakaoActionSheet) { ActionSheet(title: Text("채팅방을 나가면 대화내용이 모두 삭제되고\n채팅목록에서도 사라집..
2023.07.31 -
[Codable] color값 사용하기(연산프로퍼티)
SwiftUI에서 데이터를 JSON형식으로 변환하려면 Codable프로토콜을 채택해야 한다. import Foundation import SwiftUI struct Sticker: Codable, Identifiable { var id: UUID = UUID() var memo: String var color: Color // set에 newValue(받아온 color값) var color: Color { get { switch colorIndex { case 0: return .cyan case 1: return .purple case 2: return .blue case 3: return .yellow case 4: return .brown default: return .white } } set { ..
2023.07.12 -
[Clone App] Login - SwiftUI (#1)
스터디에서 SwiftUI로 로그인 화면을 만들어 보기로 했다! 데이터가 저장되고 실제 로그인되는건 아니지만 로그인화면의 다양한 기능을 구현해야 한다. 우선 화면 구성은 위 사진과 같다. 먼저 1주차에선 화면 구성, 이메일 정규식, 비밀번호 텍스트 필드, 로그인 동의를 구현하기로 했다. 화면구성 1. Log in (navigationTitle) : NavigationStack 이나 NavigationView를 써서 안쪽 view에 .navigationTitle("Log in")을 주면된다. struct ContentView: View { var body: some View { NavigationView { VStack { }.navigationTitle("Log in") } } } 2. Descriptio..
2023.07.06 -
[Swift] 프로퍼티 옵저버
프로퍼티 옵저버(Property Observer) 란? 프로퍼티의 값이 변경될 때 특정 동작을 수행하는 기능으로 '저장 프로퍼티'에 추가할 수 있다. 1. willSet : 프로퍼티의 값이 변경되기 직전에 호출되는 옵저버 (주로 newValue와 함께 사용) 2. didSet : 프로퍼티의 값이 변경된 후에 호출되는 옵저버 (주로 oldValue와 함께 사용) class Counter { var value: Int { willSet(newValue) { print("값이 변경될 예정입니다: 현재 값: \(value), 변경될 값: \(newValue)") } didSet(oldValue) { print("값이 변경되었습니다: \(value), 변경되기 전 값: \(oldValue)") } } init()..
2023.06.19