본문 바로가기

전체 글

[iOS] Closure를 활용한 VC 통신 (feat. prepare method) 수업에서 배운 아래의 기능 구현을 복습하며 prepare 메소드와 closure 사용에 익숙해져 봅니다. A, B 2개의 화면이 있고, A → B 로 이동하는 플로우를 가지고 있음 B 화면에는 +/- 스테퍼 기능 있음 B 화면에서 증가시키면 A 화면의 숫자가 반영됨 새로운 파일로 firstViewController 와 secondViewController 를 추가해 각각 커스텀 클래스 명칭을 지정하고, 초기화면은 firstViewController로 설정한다. 아래 이미지와 같이 firstViewController에는 Label과 Button으로 0과 다음화면을 만들고, Label 0은 IBOutlet을 사용해 numberLabel로 선언하여 firstViewController와 연결해 주었다. seco.. 더보기
[Swift] Closure, Higher Order Function (2) 2024년 4월 2일 화요일 3월에 공부했던 클로저와 고차함수를 제대로 이해하기 위해 연습하기 [Swift] Closure, Higher Order Function 1 복. 씁. 하. 기. Closure (클로저) 동작을 저장할 수 있다. 변수/상수에 저장할 수 있다. 파라미터로 전달할 수 있다. 함수에서 반환할 수 있다. 타입을 가진다 = Function Type 함수는 Closure의 한 종류(Named Closure) 이다. + Quiz / SayHello 함수의 Function Type은? func sayHello(name: String) { } (String) -> () (String) -> Void Higher Order Function (고차함수) "함수를 파라미터로 받는 함수" + 아래 a.. 더보기
[iOS] 메모 앱 만들기 Day-8 (WTF Auto Layout) Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don’t want. Try this: (1) look at each constraint and try to figure out which you don’t expect; (2) find the code that added the unwanted constraint or constraints and fix it. 여러 view 사이의 constraint끼리 충돌해서 생긴 오류가 났다. 절대적인 좌표계를 사용하는 건 화면의 정해진 사이즈를 알고 있다고 가정하는 것인데 내가 그린 화면이 여러 사이.. 더보기
[iOS] 메모 앱 만들기 D-7 (storyboard를 활용한 UI 화면 그리기) 2024년 3월 30일 토요일 오늘은 튜터님의 예제풀이를 순서대로 하나씩 따라가며, 과제를 통해 배워야 할 내용들에 대해 기록합니다. 홧팅이닷! ! #1. new file 생성 TodoListViewController로 네이밍을 바꾸고, main.storyboard의 inspector 영역의 custom class 의 class 이름을 TodoListViewController로 바꿔준다. TodoListViewController는 UIViewController 를 상속받고 있다. #2. object library에서 1) button과 2) table view 추가 1) button의 constraints는 위와 좌측의 margins만 0과 16으로 걸어주고, "추가하기"로 contents를 바꿔준다. .. 더보기
[Algorithm] 신고 결과 받기 (w/ Swift) 신고 결과 받기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr func solution(_ id_list:[String], _ report:[String], _ k:Int) -> [Int] { var users = [String: Set]() // 누가 누구를 신고했는지 var reported = [String: Int]() // 누가 얼마나 신고를 당했는지 // 기본값 세팅 for id in id_list { users[id] = [] reported[id] = 0 } for rpt in Set(report) { let reportIDs = rpt.sp.. 더보기
[Swift] Struct vs. Class 2024년 3월 28일 목요일 두 개념을 다시 한 번 정리해 봅니다. 한 문장으로 정리한 차이점은, Class 참조타입이고 ARC로 메모리 관리를 한다. Struct 값 타입이다. [ 공통점 ] 함수적 기능을 하는 메서드를 선언할 수 있다. 값을 저장할 property를 선언할 수 있다. protocol을 채택하여 기능을 설정할 수 있다. extension을 사용하여 기능을 확장할 수 있다. 생성자를 사용해 초기 상태를 설정할 수 있다. 내부 값에 .을 사용하여 접근할 수 있다. [ Class ] 참조 타입이다. : ARC로 메모리를 관리한다. : 상속이 가능하다. 동일한 클래스 인스턴스를 여러 변수에 할당한 뒤 값을 변경하면 모든 변수에 영향을 준다. 타입 캐스팅을 통해 런타임에서 클래스 인스턴스 타입.. 더보기
[GitHub] GitHub Desktop 팀 프로젝트를 진행하며 Git과 GitHub를 사용하는데 터미널에서 명령어를 넣고 엔터를 누르는 것이 여간 불안하지 않았습니다. (다른 사람의 작업에 영향이 갈까봐서) 이럴 땐 (초보자의 입장에서는) desktop 버전을 설치하면 변경 사항을 직관적으로 볼 수 있어 안심할 수 있습니다. (물론, 명령어로 작업하는 방법도 익숙해지도록 노력해야겠죠!) 오늘은 아래의 공식문서를 읽어보며 다시한번 정리해 두도록 하겠습니다. GitHub Desktop 시작하기 - GitHub Docs 컴퓨터에서 직접 프로젝트에 기여할 수 있도록 GitHub Desktop을 설정, 인증 및 구성하는 방법을 알아봅니다. docs.github.com #1. 브랜치 만들기 새 브랜치는 기본 브랜치를 기반으로 합니다. 두 개 이상의 브랜.. 더보기
[iOS] 메모 앱 만들기 Day-6 산넘어 산. error 넘어 error.. 뇌에서 외치는 소리없는 아우성. Type ‘ViewController’ does not conform to protocol ‘UITableViewDataSource’ ... 소프트웨어 업데이트를 해서 그런지 아래와 같은 에러까지 떠서 구글링 한 결과 아래와 같은 메시지를 넣으면 된다고 하여 이게 뭐래.. 하며 해결하였다. 이해 안되는 에러들 연속 출현 .. ㅃ ㅜ ㅇ ㅔ ㅇ ㅇㅇ 더보기