본문 바로가기
728x90
반응형

분류 전체보기94

[Swift] Codingkey에 모든 키가 있어야 할까? 얼마전에 네트워크 통신과 관련된 공부를 하면서 친구가 아래처럼 코드를 쓰더군요struct Weather: Codable { let id: String let temp: Double let humanFeel: Double enum CodingKeys: String, Codingkey { case id, temp case humanFeel = human_feel }} 그래서 갑자기 든 궁금증이 "id와 temp는 코딩키에 없어도 그냥 디코딩 되는거 아닌가?"그렇게 찾아본 결과 코딩키를 하나라도 쓰게되면 모든 키가 있어야 한다가 정답이었습니다.정확히는 코딩키를 쓸 때 기존의 구조체에 쓴 내용이 코딩키에서 빠져도 상관없지만만약 빠지게 된다면 디코딩에서 제외된다.. 2024. 12. 2.
[CS] OOP(객체 지향 프로그래밍)(feat. Swift) 일단 OOP를 왜 공부하게 됐는지부터 설명해 드리자면...일단은 Moya를 공부하고 있었는데요... 하다 보니까 DIP에 대해서 공부하게 되는데 이제 DIP를 이해하는 데에 OOP에 대한 기본적인 개념부터 다시 정리하고 넘어가는 게 좋겠다는 생각이 들어서 여기까지 오게 되었습니다...아무튼! OOP는 프로그램 설계 방법론 중 하나입니다.Object-Oriented Programming의 약어이며 명령형 프로그래밍에 속합니다.한국어로 하면 객체지향 프로그래밍.프로그램을 데이터, 처리방법 두 가지로 나누는 것이 아닌 객체(Object)라는 단위로 나누고 객체 간의 상호작용으로 설계하며대표적으로 C++, 파이썬, Objective-C 가 지원합니다. 객체지향 프로그래밍에는 3가지 요소가 있습니다.캡슐화, 상속.. 2024. 11. 25.
[Swift] Xcode AI코드 에러(긴급) 저는 xcode상에 Predictive Code Completion Model를 켜놓은 상태로 사용하고 있었는데요,(이거 켜놓으면 코드 예측도 해주고, 코드 추천도 해주고, 무엇보다 작명의 고통으로 부터 해방 될 수 있어요...)공부용으로 테스트 코드 확인하고 있었는데 Predictive Code Completion Model을 켜놓은 채로var todoCompo = URLComponents()를 선언한 뒤 바로 다음줄에todocompo 까지 입력하면 무조건적으로 xcode가 비정상적으로 종료됩니다. 아래와 같이 입력하면 종료됩니다.var todoCompo = URLComponents()todocompo복붙으로 바로 넣는건 상관없지만 직접 입력하면(심지어 마지막 o만 지웠다 넣어도) 바로 튕깁니다. Se.. 2024. 11. 22.
[Swift] frame과 bounds 들어가기에 앞서서 이런 뷰가 공통적으로 있다고 가정할께요?frame위는 공식문서에 있는 내용입니다.간단히 해석해보면해당뷰의 Superview의 좌표계에서 위치와 크기이다.이게 뭔말이냐 할 수 있는데요,내가 선택한(.frame으로 접근한) 뷰의 Superview(부모뷰)안에서의 위치와 크기를 나타낸다.고 이해하심 됩니다.그래서 좌표를 찍어보면 슈퍼뷰에서의 상대 위치로 위치가 찍힙니다.(아무튼 위치가 찍힌다는 말이죠)또한 뷰의 크기를 계산하는것도 특이한데요,크기를 정하는 영역은 항상 슈퍼뷰 안에서 직사각형 형태로 존재하기때문에 뷰가 돌아가도 공백을 다 포함한 너비를 구하려고 합니다. 한번 직접 볼까요?묘하게 점선도 돌아간것 같지만 실제론 안에있는 빨간색 사각형만 돌아가있다는... bounds위 내용도 공식 .. 2024. 10. 19.
[CS] final, static, class(feat.Swift) 이번 시간에는 제일 헷갈릴수 있는 세가지를 알아봅시다.이전에 같은 내용으로 글을 쓴적이 있죠? 그걸 보강겸 다시 새로 좀 확실하게 공부하면서 새로 쓴 글입니다! 이전글간단요약static과 class는 메서드나 프로퍼티를 인스턴스화 하지 않고 하나만 존재하도록 하기 위해 사용한다.이 말인 즉슨 타입 프로퍼티, 타입 메서드로 만들어 버린다는 뜻.또한 static은 상속을 막을때도 쓴다.finalfinal은 딱봐도 느낌이 오죠? 끝! 이라는 느낌이 오실텐데요,final은 오버라이딩을 막기위해 사용됩니다.오버라이딩이란?인스턴스 메서드, 인스턴스 프로퍼티, 타입 메서드, 타입 프로퍼티, 서브스크립트의 재정의를 막는것입니다.잘 모르겠으면 아래 보시면 바로 아실거에요override func viewDidLoad() .. 2024. 10. 19.
[UIKit] navigationbar 숨기기와 보이기 이번시간에는 navigationbar를 자유자재로 각 뷰마다 보이거나 숨기도록 하는 방법을 알아봅시다.깃허브 링크에 들어가보시면 아래앱의 전체 코드가 있습니다.위 이미지에 보시다싶이 제 앱에선 상단의 navigationbar가 항상 존재하지않습니다.메인화면에선 없구요, 항상 어딘가를 들어가야(뎁스가 늘어나야) 존재하게 됩니다.이렇게 navigationbar를 숨기거나 나타내는 방법에는 두가지가 있습니다. setNavigationBarHidden(_:animated:)첫번째 파라미터는 숨김여부 bool,두번째 파라미터는 애니메이션여부 bool입니다.파라미터에서부터 보면 알수있죠?animated를 통해서 애니메이션 여부를 결정할 수 있습니다.사용방법은 아래와 같습니다.func 어떤 메서드() { // 애니메.. 2024. 9. 24.
728x90
반응형