shippingpark / Cookies-DevLab

PR로 주고받는 UIKit, SwiftUI, UnitTest 학습
1 stars 0 forks source link

[Mission/#3-Rochelle] 2일차 미션 #12

Closed Rochelle0922 closed 20 hours ago

Rochelle0922 commented 1 day ago

현재시각 5시,,,, 테이블 뷰를 실패하고 쓰는 PR입니다.

### 오늘 시도한 것 🔸 숫자 외 예외처리 일단 숙제 1에서 최대 숫자를 벗어났을 때 0으로 반환된다고 했었던 에러는 숫자 값을 벗어나거나, 복사를 통해 string 값이 입력될 경우 "유효한 숫자를 입력해주세요"라고 예외처리 했습니다. IMG_7196

🔸GPT랑 대화하면서 알게된 Table View를 만드는 순서

  1. 스토리보드에서 Table View와 Table View Cell을 연결
  2. UITableViewDataSource, Delegate 프로토콜 구현
    • DataSource : 테이블 뷰의 데이터 소스는 테이블 뷰가 몇 개의 셀을 보여줘야 하는지, 각 셀에 어떤 내용을 표시해야 하는지 정의하는 역할
    • Delegate : 테이블 뷰의 셀 선택, 셀 높이 조정, 셀의 편집 등을 처리하는 메서드를 정의
  3. TableViewCell 클래스 만들기
    • 스토리 보드에 올린 뒤 엮어둔 상태이고 Cell을 커스텀 하려고 하여 Cocoa Touch로 클래스를 만들어 커스텀 할 셀의 데이터들을 입력하였습니다. ❓몽쉘 의문점 왜 Swift 파일이 아닌 Cocoa Touch Class로 만들까? Cocoa Touch는 생성시 선택하는 UIViewController 등을 클래스가 자동으로 상속하여 이용할 수 있도록 해 주는 Framework라고 합니다.
  4. Storyboard에서 cell의 Identifier 설정
    • 이걸 설정해야하는 이유는 셀을 재사용해야해서 라고 GPT랑 대화하면 깨달았습니다.
  5. 이후 Table View에 대한 코드 작성
    • 눈에 보이는 뷰를 먼저 만들고 코드를 이해하려고 GPT 코드를 막 넣었는데 뷰가 되지도 않고, 안되는 이유도 아직 잘 모르겠고, 코드 이해도 못했습니다.... 여기서 막힌 지점은 시뮬레이터를 켰을 때 제가 이해한 GPT 코드만큼 작동을 하지 않아 어디부터가 잘못된 건지 모르겠습니다... 하지만 5시라 일단 포기하겠습니다....
Rochelle0922 commented 1 day ago

2024년 11월 1일 AM 12:22 지출 버튼을 누르면 나오는 레이블 위치 변경 및 X 버튼 생성 완료

에러사항 ScreenRecording_11-01-2024 00-15-40_1 지출버튼을 누르면 밑에 레이블이 잘 나타납니다. 하지만 이후에 엑스버튼을 눌러 레이블을 지우고 텍스트 필드 숫자도 지우고 다시 숫자를 입력하면 레이블이 나타나지 않는 에러가 있습니다. 제가 뭘 조치를 안한거겠죠.... 현 상황 공유차 올렸고 조금 더 개선하고 다시 PR 올려두겠습니다!!

shippingpark commented 1 day ago

오 좋아요!! 지금 현재 하단의 화면 구성이 TableView로 진행되고 있을까요? TableView의 Cell에 Label을 올린 것 인지 궁금합니다!! 그리고 아마, 다시 숫자를 입력하면 기존에 삭제했던 레이블을 다시 화면에 삽입하는 코드가 필요할거에요! 한 번 확인해 볼까용?! 물론, 현재로서는 라벨을 지웠다 추가하는 게 아닌, 테이블 뷰에서 cell을 삭제하고 추가하는 작업이어야겠죵?!

+) 더 나아가 테이블뷰로 작성하지 않고 단순히 라벨(뷰)를 직접 쌓는 게 어떤 의미를 가지는 지, 테이블뷰로 작성하면 어떤 편의가 있는 지 생각하면 좋을 것 같아용!! 분명 더 편해서 쓰는 걸 테니 말이에요!!

image

Rochelle0922 commented 1 day ago

그리고 아마, 다시 숫자를 입력하면 기존에 삭제했던 레이블을 다시 화면에 삽입하는 코드가 필요할거에요! 한 번 확인해 볼까용?!

이건 레이블을 다시 화면에 삽입하는 코드를 넣어서 해결했습니다.

shippingpark commented 23 hours ago

어썸

image

Rochelle0922 commented 22 hours ago

퀴즈

Q) 클래스의 액션 메서드와 인터페이스 빌더의 이벤트를 연결하기 위해 메서드 앞에 붙이는 
어노테이션(Annotation)과 클래스의 프로퍼티와 인터페이스 빌더의 요소를 연결하기 위해 
프로퍼티 앞에 붙이는 어노테이션(Annotation)을 빈칸에 알맞게 채워보세요. ✅ 
@IBAction / 
@IBOutlet

Q) UIKit의 요소를 크게 입력과 출력으로 구분한다고 할 때, 다음 중 다른 한 가지는 무엇일까요?
왜 그렇게 생각했나요? (답이 중요하지 않으므로 정말 고민해보기!! 필요 시 각각의 단어는 검색해서 찾아보기)

 Views and Controls 
View Controllers
 Animation and Haptics 
Windows and Screens 
✅ Touches, Presses, and Gestures -> 출력이라고 생각함

Q) iOS 앱에서는 여러 [ ]에 의해 실행할 코드가 결정되는데요. 
이것을 ‘[ ] 기반 프로그래밍’ 혹은 ‘[ ] 주도 프로그래밍’이라고 표현합니다. 
[ ]는 사용자 혹은 시스템 등에서 여러 상황에 전달합니다. 빈 칸에 알맞은 표현은 무엇일까요?

 ✅ 함수
 -> 모르겠습니다,,,, 직감입니다,,,, 이벤트 
클래스
 객체
 액션