TIL
-
211003 - TILTIL/2021 2021. 1. 4. 05:02
프로젝트 구현은 UI를 위주로 구현해서 딱히 구현에 고민한 부분은 없다. 오늘 공부한 내용은 TextView와 SoftwareKeyboard 그리고 InputView, AccessoryView이다. 유심히 본 부분은 notification을 활용하여 키보드가 나타날 때 textView의 위치를 조정하는 방법과 delegate를 이용하여 텍스트의 입력을 제어하는 방법이었다. 복습은 Collection View를 복습했다. 자꾸 헷갈리는 부분은 customCell을 다룰 때 크기 조정하는 부분과 flowLayout이었다. Storyboard에서 prototype cell의 크기를 바꾸는 건 실제 실행 시에 의미가 없고 collectionView에서 크기를 바꾸거나 delegate를 통해서 크기를 바꿔야 한다..
-
201231- TILTIL/2021 2021. 1. 1. 03:37
iOS Data pass 어제 구현했던 unwind segue를 이용한 B -> A 데이터 이동 방식은 B에서 A의 속성에 바로 접근할 수 있다는 장점이 있었지만 coupling 개념에 있어서 좋지 못했다. 그래서 다시 구현한 방식은 notification을 이용한 방법! B에서 notification을 send하고 A에서 observer를 만들어 캐치하면 됐다! 이때 정보는 userinfo에 담아서 보내면 된다. extension NSNotification.Name { static let DateValueDidChange = NSNotification.Name("DateValueDidChangeNotification") } B에 이렇게 이름을 추가하고 @IBAction func save(_ sender..
-
201230 - TILTIL/2021 2020. 12. 31. 04:34
Swift 다시 복습했던 부분은!! Optional try try? try! defer statement Result Type Error를 처리하는 다른 방식 기존 error 처리방식을 완전히 대체하지는 못한다. Enum으로 되어있다. 처음 봤을 때는 전혀 이해하지 못했는데 한번 사용을 해봤더니 이번에는 이해가 갔다!! Assertion 디버깅할 때 사용한다. 릴리즈 모드에서는 실행되지 않는다. assert(_:_:file:line:)과 assertionFailure(_:file:line:) Precondition assertion과 똑같은데 릴리즈 모드에서도 실행된다. 아주 특정한 상황에서 앱을 강제 종료해야 한다면 사용하기 좋다. -Ounchecked 플래그가 있다면 릴리즈 모드에서도 실행되지 않는다..
-
201228 - TILTIL/2021 2020. 12. 29. 04:00
iOS 오늘은 프로젝트 구현을 하지 않고 GCD, Operation에 대해서 공부했다. Thread? DispatchQueue?? Main queue, background queue Serial queue, concurrent queue sync, aync DispatchGroup DispatchSemaphore Operation Queue Qos 공부한 양이 많아서 자세한 것은 TIL에 적지 않고 나중에 iOS에서 따로 다룰 예정이다! 개념을 이해하는데는 어렵지 않았지만 많은 개념들을 배워서 배운 것들을 기억하는데 시간이 걸릴 거 같다.
-
201226 - TILTIL/2021 2020. 12. 27. 04:17
iOS Label Line break Autoshink Label에 대해서 대부분 아는 것들이었지만 새로 알게 된 것은 이 두 가지였다. Line break는 여러 줄을 나타낼 때 단어가 잘리면서 줄 바꿈 할지 단어를 유지하며 줄바꿈할지 이런 것들을 정하는 속성이었고 autoshrink는 지정해놓은 줄 수를 넘어가면 글자의 크기를 맞게 줄이는 기능이다. 하지만 이건 별로 사용 안 할 거 같다. Timer Timer를 생성할 때는 Timer.scheduledTimer(withTimeInterval:repeats:block:) 메서드를 이용한다. 이 메서드 말고 다른 메서드도 하나 있다. TimeInterval을 저장할 변수를 하나 생성하고 반복적으로 증가시키면 된다. TimeInterval을 보기 좋은 문..
-
201225 - TILTIL/2021 2020. 12. 26. 04:15
iOS 프로젝트를 만들면서 공부한 내용이다. Target Action addTarget(_:actoin:for) 메서드를 이용하여 target과 action을 연결 selector 만드는 방법 다른 스토리보드의 화면을 연결하는 방법 UIStoryboard의 instantiateViewController(withIdentifier:) 메서드 사용 storyboardID Identifier를 지정하지 않고 initialView가 지정되어 있다면 instantiateInitialViewController() 메서드 이용 storyboard에서 storyboardReference를 이용하여 화면 연결하는 방법 Row Action, SwipeAction iOS11.0 이하일 땐 Row Action, 11.0 이상..
-
201211 - TILTIL/2021 2020. 12. 12. 02:12
iOS 오늘은 table view에 대해서 공부를 했다. TableView 공식문서 TableViewCell 공식문서 TableViewController 공식문서 Filing a Table with Data 공식문서 공식문서를 보며 두리뭉실하던 세 가지 object에 대한 개념들도 바로잡게 됐다. 아직 prefetching이나 restoring은 사용해보지 않았고 개념을 모르지만 이런 게 있구나라고 알아가게 됐다. Custom tableViewCell과 tableViewDelegate를 이용하여 section header와 footer를 구현하였다.
-
201210 - TILTIL/2021 2020. 12. 11. 01:30
Swift map, filter, reduce를 다시 복습했다. map 기존 데이터를 변형할 때 사용 Sequence, Collection 프로토콜을 채용한 경우 사용 가능 Sequence? Collection? Array를 반환한다. filter 조건에 맞는 값을 반환 파라미터의 리턴 타입은 Bool reduce 내부의 값을 하나의 값으로 합하여 반환 초기값을 지정해야 한다. 2가지가 존재 result를 반환하는 형태 result를 반환하지 않고 Inout 파라미터를 사용하여 초기값을 변환시키는 형태 이 세 가지 함수는 이제 이해했다. 사용하는데도 무리가 없었다. 하지만 문제는...!! 모나드.... 저번에 봤을 때도 이게 뭔 소리야 했는데 이번에 봤을 때는 컨텍스트는 그릇, 상자 같은 거군, 함수객체..