23.09.01 금
·
Study/🌱 SeSAC
화면 전환 시 서버 통신 화면 전환 시 서버 통신 후 값 전달화면 전환할 때 응답을 받은 후 전환해야 하기 때문에 사용자 입장에서 불편함을 느낄 수 있음(속도) 통신에 실패할 시 얼럿 등의 메세지를 띄우는 대처 필요 화면 전환 후 viewDidLoad 통신 실패 화면을 준비하는 것이 필요하다 💡 URL Session 타임아웃 시간 걸기 let request = URLRequest(url: url!, timeoutInterval: 10) error가 발생하지 않는다면 error 값은 nil일 것이다. let result = try? JSONDecoder().decode(, from: data) 오류가 발생했을 때 result에 nil값이 들어가버리면 어디에서 문제가 발생했는지 알 수 없다. let resu..
23.08.31 목
·
Study/🌱 SeSAC
✅ deinit 메모리 상에서 뷰컨이 필요 없어져서 메모리 상에서 사라졌는지 확인할 때 사용 deinit { print("deinit", self) } 메모리 누수를 찾아볼 수 있는 방법이다. back button 클릭하여 뷰가 사라질 때 deinit 호출 됨 viewcontroller에 작성했던 collection view의 설정들을 view 파일에서 작성하기 🚨view에서 화면 전환이 불가능 화면 전환 관련 코드들은 viewController가 가지고 있기 때문에 view에서 작성 시 didSelectItem에서 화면 전환을 구현할 수 없다. 값 전달 활용 - protocol protocol을 활용하여 셀을 선택 함을 알려줌 1. protocol 생성 2. delegate 생성 3. 셀 선택 시 vi..
23.08.30 수
·
Study/🌱 SeSAC
💡 싱글톤 패턴 클래스는 어디서든 인스턴스 생성을 할 수 있다 init이 internal로 선언되어 있기 때문 아무 곳에서나 생성이 되지 않게 하기 위해 private으로 접근 제어 수준을 높이자 💡 convenience init searchBar, button 등은 왜 초기화 할 때 frame 지정을 안해줘도 동작이 될까? 초기화 구문을 구현할 때 convenience를 붙인다면 디폴트 값을 지정해줄 수 있다. 초기화 시 매개변수를 안보이게 내부적으로 디폴트 값이 구현되어 있고, 초기화 시 디폴트 값으로 초기화를 한다. 💡 webView 웹 뷰에서 네비게이션 컨트롤러가 처음에는 투명, 스크롤 하면 불투명 ✅ NavigationBar Custom 스크롤x / 스크롤 내렸을 때 navigationContr..
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 코드에 대한 접근을 ..