23.08.29 화
·
Study/🌱 SeSAC
💡 addObserver 중복 ) addObserver는 한 번만 등록되도록 배치해야 한다. viewWillAppear에 등록한다면 Observer 호출 횟수가 계속해서 증가한다. 중복 노티 방지를 체크해야 함! ✅ removeObserver ✅ Notification Extension 💡datePicker ✅ dataPickerView 코드 베이스 구성하기 💡Protocol Delegate 값 전달 protocol 구현 2. delegate 3. 전달할 값 매개변수로 넣기 4. 전달 받은 값 5. 화면 전환 시 값 전달 ✅ DateFormat Extension 💡 Access Control ✔️ open > public > internal > fileprivate > private 코드에 대한 접근을 ..
23.08.28 월
·
Study/🌱 SeSAC
💡 레이아웃 코드 분리하기 BaseViewController BaseViewController를 생성하여 VC에 공통적으로 사용하는 설정 요소들을 작성하고 뷰 컨트롤러들이 상속 받는 형식으로 구성 뷰 객체에 대한 UI나 레이아웃, 토스트 메세지, 얼럿, 임포트 등 뷰컨에서 공통적으로 작성되는 코드를 구조화 함으로써 가독성도 높이고 코드 중복도 줄일 수 있다. ✅ view controller의 레이아웃 코드 분리하기 BaseView를 상속받는 AddView → AddViewController의 루트 뷰로 설정할 것 자기 자신에게 적용하는 것이기 때문에 view는 지워도 된다. AddView 클래스 인스턴스를 생성 mainView를 루트 뷰로 교체를 해줘야 한다. 💡 RootView - loadView() ..
23.08.25 금
·
Study/🌱 SeSAC
tableview register 등등 클로저 구문에 imageview frame 지정 시점 💡 CustomTableViewCell 구현하기 ✔️ UITableViewCell 생성 → 인터페이스 빌더 상에서 셀을 구현할 때 작동한다. ✔️ view.addSubView / contentView.addSubView view.addSubView → uiViewController의 변경할 수 없는 기본 view 위에 얹는 것 tableViewCell은 Content View위에 다른 뷰들이 올라가는 것이다. ⇒ 때문에 addSubView를 할 때 view가 아닌 contentView 위에 올려야 한다! contentView가 아닌 tableViewCell위에 올리는 것은 오류가 발생하지는 않지만 레이아웃 적용이..
23.08.24 목
·
Study/🌱 SeSAC
💡 카메라 권한: 촬영, 갤러리, 마이크 ImagePickerControlller → deprecated 예정 ⇒ PHPicker 🔎 갤러리에 접근하기 인스턴스 가져오기 let picker = UIImagePickerController() photoLibrary, savedPhotosAlbum → will be deprecated camera는 아직 사용 가능 available - 갤러리에 접근할 수 있는지 권한 단독으로 사진만 가져오고 싶다 → 권한 안물어봐도 됨 민감한 데이터 혹은 정보 사용 등 경우 권한 물어봐야 함 ⇒ 갤러리를 가지고 오는 권한과 갤러리 내 데이터 사용하는 권한은 다름! UIImagePickerController는 navigationController를 상속받아 사용한다. ✅ 사진..
23.08.23 수
·
Study/🌱 SeSAC
leading / leadingMargin constraints to margin 체크박스 체크 유무 차이 위치 서비스 활성화 → 사용자 권한 확인 → 권한 결정 안되어 있다면 얼럿 → 바뀐 권한 체크 → 다시 권한 확인 → 허용 authorizedWhenInUse → didUpdateLocation viewDidLoad에서 권한을 체크하는 함수를 호출하지 않아도 권한 변경 함수가 호출이 된다. 주석처리 하지 않는 것이 좋다. 버그 이슈 🐞 버그 navigationController를 달고 화면 전환을 하면 권한 변경 메서드가 호출되지 않는다. viewdidload가 기본적으로 호출하는 것은 아니다. nav나 tab 등을 달고 화면 전환을 해야하는 경우라면 권한 체크 함수를 명시적으로 viewDidLoa..
23.08.22 화
·
Study/🌱 SeSAC
💡 NSLayoutConstraints → addConstraints 사용하기 isActive addConstraints constraints → 여러개 추가 constraint → 하나 추가 addConstraints로 레이아웃에 대한 항목을 한 눈에 볼 수 있다. ✅ NSLayoutAnchor centerXAnchor → x축 중앙 뷰 객체가 safeArea를 벗어난다. safeArea 위로 constraints를 잡기 위해 view.safeAreaLayoutGuide.bottomAnchor 사용 🚨 view.addSubView를 작성하지 않는다면 런타임 오류 발생한다. 레이아웃을 잘못 잡은 것 처럼 오류가 난다. 뷰가 올라와 있어야 레이아웃을 지정하는데 올라오지 않은 뷰를 레이아웃 잡으려 하니 레이..
23.08.21 월
·
Study/🌱 SeSAC
💡 알림 사용자가 권한을 허용해야 알림 가능 앱 재사용률(Retention)에 기여 앱이 종료 된 경우에도 사용자에게 표시 가능 ✅ willPresent 알림을 특정 화면이나 특정 조건에서만 포그라운드 알림을 받도록 할 수 있고, 또 특정 화면에서는 알림 안받기도 설정 가능하다. 특정 푸시를 클릭하면 특정 화면으로 이동 알림 개수 제한 : 하루에 하나의 앱에서 64개로 제한이 있다. identifier기반 이전에 등록된 알림을 제거하는 방식으로 더 보여주기도 한다. 카톡: 포그라운드 앱을 켜는 순간, 등록되어 있던 모든 알림들을 제거 ✅ 알림 스택 제거 알림 유효기간이 존재함(한달) identifier 기반으로 특정 알림을 지울 수 있다. 캘린더 기반 알림 설정 Date Components → 10시 5..
23.08.18 금
·
Study/🌱 SeSAC
✅ Font asset은 copy bundle resources에 들어가있음 폰트파일 연결하기 폰트명을 찾아보자! 폰트 파일 명과 폰트명은 다를 확률이 높다. ✅ Dispatch Group 서로 다른 task들을 그룹화 하여 Queue에 보낸 task들이 작업을 완료할 때 까지 기다리고, 그룹화 된 task가 완료되면 notify를 통해 알림을 받을 수 있는 기능을 한다. QoS Quality Of Service 동시에 일을 맡기기는 하지만 먼저 작업을 했으면 좋겠는 작업 설정 background → 작업 중요도가 낮은(파일 다운로드) unspecified → 시스템에게 중요도 순위를 알아서 판단하라고 맡김 userInteractive → 중요도가 높은 작업 모든 일을 가장 먼저 혹은 늦게 하는 것은 아..
23.08.14 월
·
Study/🌱 SeSAC
열거형은 저장 프로퍼티를 사용할 수 없다 → 인스턴스 생성 불가 static이 붙어있다면 상관 없다. 사용 가능 → 데이터 영역에 저장 연산 프로퍼티 static var photo → static 제거하면? 인스턴스 연산 프로퍼티 → 값을 저장하고 있지는 않고, 값을 사용할 수 있는 통로로서의 역할만 담당 인스턴스 연산 프로퍼티는 인스턴스 연산 프로퍼티만 사용 가능 타입 연산 프로퍼티를 사용할 수 없어서 오류가 난다. 타입 명시가 된다면 타입 프로퍼티 사용 가능하다. → 런타임 시 api 체크 요청을 했기 때문에 보라색 오류가 나타난다. → 동기, 순서대로 실행, 끝나는 지점 알 수 있음 버튼이 눌려있는 상태로 끝나길 기다린다. async 이미지는 메인 스레드에서 동작해야 한다. global async로..
테이블 뷰 셀 오류
·
Study/🚨 TroubleShooting
오류 났을 때 바로 정리 좀 할걸.. 왜 안되지 하다가 해결하고 나서야 블로그를 쓸 생각을 했다.. 💻 구현 테이블뷰 컨트롤러를 이용하여 쇼핑 리스트 추가하기를 구현하고 있었다. 오른쪽에 즐겨찾기 버튼과 왼쪽에 체크박스 이미지를 놓고 별 버튼을 누르면 채워진 별로 즐겨찾기 활성화, 셀을 누르면 체크박스 이미지가 채워져 확인 완료 표시를 구현하려 했다. checked는 체크박스 체크 유무, like는 즐겨찾기 유무 🚨 문제 버튼 이벤트 적용한 후 리스트를 추가하면 즐겨찾기 버튼 이미지가 제멋대로 채워졌다가 사라지는 오류가 생겨남 셀을 선택하면 체크박스 이미지 뷰의 이미지를 변경하였으나, 리스트를 추가하면 체크박스가 모두 리셋이 됨. 🤯 나의 노력 테이블 뷰에대한 이해도가 매우 낮은 상태다 보니 어떤 메서드..