일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- instance
- Foundation
- 코딩테스트
- 디자인패턴
- tuist
- interpace
- 이니셜라이저
- IOS
- Unicode
- Git
- Swift
- delegate
- Xcode
- extension
- optional
- 스위프트
- struct
- property
- Class
- Method
- type
- initalizer
- url
- UIKit
- Terminal
- enum
- initializer
- String
- Protocol
- init
- Today
- Total
목록분류 전체보기 (78)
아리의 iOS 탐구생활
UIView 요소를 코드로 직접 커스텀하여 사용하기 위해 만들던 와중에 override 이니셜라이저와 required 이니셜라이저, 총 2개의 이니셜라이저를 정의해야한다는 것을 알게되었다. override init(frame: CGRect) { super.init(frame: frame) } required init(coder: NSCoder) { super.init(coder: coder) } 근데 이 둘의 정체는 뭘까..?? 왜 재정의하며 파라미터로는 각각 다른 타입을 받고있는데, 어떤 것을 초기화하는 것일까? 한번 알아보자. # init(frame:) Apple Developer Documentation developer.apple.com 코드로 UIView Class의 View 인스턴스를 만들기 ..
안녕하세요. 아리입니다. 🐥 어느날 프로젝트를 하고 있는데, 리뷰어 엘림에게 이런 피드백을 받았습니다. 개발자에게만 어떤 에러가 발생했을 때 알려주기 위해 print문을 사용했었는데, 따로 프로그래머에게만 보여지는 전용 print문이 있더군요. log, assert, debugPrint 등이 있는데 그중 OSLog라는 애를 배워볼겁니다. 그 이유는 사용하기는 조금 어렵고 번거롭지만, 추후 로그를 통해 데이터를 관리하기 수월해지기 때문입니다. 아직 제가 하고 있는 프로젝트에서 log까지는 필요없다고 판단되었지만 한번 써먹어보며 배워볼겸 정리해보았습니다. 시작해볼까요? # OSLog란? Apple Developer Documentation developer.apple.com 과거의 데이터를 읽기 위한 통합 ..
최신 커밋이 아니라 이전 커밋들을 수정하려면 interactive rebasing을 활용하면 된다. 대신 이전 커밋을 수정하게 된다면 그 커밋 이후에 생긴 커밋들도 모두 업데이트가 되 그점을 유의해야 한다. git rebase -i 12345ab 위와 같이 -i 옵션을 사용하여 수정을 원하는 커밋 이전 커밋의 해시코드를 넣어주면 그 다음에 이어지는 모든 커밋들이 나와있는 걸 확인할 수 있다. 위와같이 커밋들이 표시가 되는데, 아래에 메세지들을 살펴보면 다음과 같이 명령어들이 정리되어있다. # Rebase 98955fc..0ddd7ab onto 98955fc (4 commands) # # Commands: # p, pick = use commit (이거 괜찮으니까 이거 써!) # r, reword = us..
테스트 주도 개발(Test-Driven Development TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 개발자는 먼저 요구사항을 검증하는 자동화 된 테스트 케이스를 작성한다. 그런 후에 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 마지막으로 작성한 코드를 표준에 맞도록 리팩토링한다. -위키백과 테스트 주도 개발을 말 그대로 개발을 하는데에 있어서 테스트가 주가 된다는 하나의 개발 방법론이다. 먼저 테스트를 하면서 코드를 작성하고 그 후에 본 코드를 구현하는 방식이다. 테스트를 거친 후에 코드를 작성한다면 추후에 신경 써줘야할 많은 부분들에 대해서 해결을 하면서 코드를 작성할 수 있겠다. 하지만 TDD를 언제나 고집하기에는 번거롭고 생산성이 떨어지는..
Apple Developer Documentation developer.apple.com 새로운 ViewController 클래스를 만들게 되면 아래 prepare 메소드가 주석처리 되어있다. /* // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepare(for segue: UIStoryboardSegue, sender: Any?) { // Get the new view controller using segue.destination. // Pass the selected object to the new..
Apple Developer Documentation developer.apple.com 값을 늘리거나 줄이는 컨트롤. # 화면에 Label과 Stepper 추가하기 라이브러리 창을 켜서 Label과 Stepper를 추가해준다. Label의 텍스트와 폰트 크기를 취향껏 조절해준다. 아래 예제처럼 Auto Layout을 설정해준다. Auto Layout을 설정하지 않는다면 화면크기가 달라질때마다 위치가 바뀔 수 있다. # @IBOutlet과 @IBAction을 설정하고 코드와 연결 Label과 Stepper를 코드에 연결하여 @IBOutlet 추가 마찬가지로 @IBAction 메서드도 추가해주자. Stepper를 동작할 때마다 Label의 텍스트가 변하도록 설정해준다. # 완성 # 주요 프로퍼티 살펴보기 ..
# ViewController의 생명주기란? 각각의 ViewController들은 생명주기란 어떤 것이냐면 말그대로 ‘보여졌다. 사라지는’ 주기를 이야기한다. 생명주기 관련 메서드들을 잘 활용하면 화면을 재구성하거나 할 때 유용하게 쓰이므로 잘 알아두는 것이 좋다. 정상적인 ViewController 생명주기를 요약하자면 Appearing 상태를 거쳐서 Appeared 상태가 진행되고, 만약 종료하려면 Disappearing 상태를 거쳐서 Disappeared 상태로 진행된다. 정상적이지 않은 등장하는 도중에 다시 퇴장되는 경우가 있는데 이럴 때는 Appearing 상태에서 Appeared상태로 가지않고 곧바로 Disappeared 상태로 가게된다. 사용자가 홈버튼을 눌러 앱을 백그라운드 상태로 보냈을 ..
Apple Developer Documentation developer.apple.com 계층적 내용을 탐색하기 위한 스택 기반 체계를 정의하는 컨테이너 뷰 컨트롤러. 여기서 스택기반이라고 하는 것은 한마디로 Stack을 쌓아가는 구조다. 간단한 예를 들어보면 크롬을 사용할 때 뒤로가기나 앞으로 가기를 눌러 전 화면에 접근을 할 수 있는데 이것 또한 스택구조로 이루어져 있다. Stack : LIFO(Last In First Out)로 역순 탐색을 위한 구조 Stack에서 Push : 데이터 쌓기 Stack에서 Pop : 데이터 빼기 (뒤로가기) # NavigationController 먼저 rootViewController로 설정해줄 컨트롤러를 누르고 Editor > Embed in > Navigatio..
# ViewController ViewController는 앱의 근간을 이루는 객체로 모든 앱은 최소한 하나 이상의 ViewController를 가지고 있다. 주된 역할은 화면 구성 요소들, 즉 뷰를 관리 하는거지만 화면과 데이터 사이의 상호 작용 관리까지 한다. 윈도우 객체로 부터 전달된 이벤트를 받아서 내부적으로 구현된 비즈니스 로직을 실행하고, 그 결과로 얻어진 데이터를 콘텐츠를 만들어 화면에 표현하는 등 모바일 애플리케이션에서 뷰 컨트롤러는 우리가 하는 대부분의 작업들의 중심에 있다. ViewController는 여러가지 종류가 있는데, ViewController, Navigation Controller, TableView Controller, TabBar Controller, Split View..
# 인터페이스 빌더에서 직접 연결하기 일단 2개의 View Controller를 준비한 후 ‘Go to B’ 버튼을 올려준다. 그리고 ‘Go to B’ 버튼을 선택 후 Ctrl 키를 누른채로 B View Controller로 드래그를 하면 연결할 수 있는 Segue의 종류가 뜬다. Segue로 Show를 선택하면 화살표가 하나 생기는데, 이게 Segue가 연결되었다는 의미이고, Segue를 선택한 후 Inspector에서 여러 설정을 바꿀 수도 있다. 결과 화면 이 예제에서는 Modal처럼 화면이 아래서 올라오는데, 옆으로 넘어가는 효과를 적용하려면 A ViewController를 Navigation Controller에 Embed 해주어야 한다. 직접 연결하는 방법은 ViewController 간의 상..