TIL
-
210519 - TILTIL/2021 2021. 5. 20. 01:02
MeasurementFormatter Notification으로 userInfo에 정보를 담아서 다른 VC로 보내고 이 정보를 원하는 format으로 변경시켜야 하는 경우가 많았다. 물론 내가 직접 수식과 string interpolation으로 변환시킬수도 있지만 제공해주는 기능이라면 사용하는 게 당연 예시로 길이만 했는데 제공하는 Unit이 많으니 아주 유용하다. Measure을 extension으로 확장해서 사용을 하면 표현 방식을 바꾸고 싶을때 유용하게 사용할 수 있다. Enum allCases TableView를 여러개의 section으로 표현하려는데 간단하고 보기 쉽게 어떻게 할까? 하다가 기존 1개 section을 이용할 때는 enum을 이용해서 이걸 그대로 이용할 수 있을까 해서 enum을..
-
210518 - TILTIL/2021 2021. 5. 19. 00:49
Showing Recent Messages The file "~~~~FilePath.entitlements" could not be opened. Verify the value of the CODE_SIGN_ENTITLEMENTS build setting for target "MungMungLog Dev" is correct and that the file exists on disk. 시뮬레이터에서는 잘 실행되는데 디바이스에서 실행하니 이런 에러가 났다. 문제는 Apple Login을 위해 .entitlements file을 추가했었는데 위치가 잘못 지정돼있어서 위치를 옮기고서 Target -> BuildSettings -> Code Signing Entitlements에서 경로를 수정하지 않아서 발생한..
-
210514 - TILTIL/2021 2021. 5. 14. 23:05
SceneDelegate, AppDelegate ViewController안에 timer라는 속성을 넣기보다 TimerManager라는 객체를 만들고 이 친구와 메시지를 주고받으며 구현해볼까??라는 생각에 Timer를 다시 만드는데 시간을 기록하기위해서는 앱이 Background에 있어도 시간이 기록되어야 했다. 그래서 어떻게 해야 할까 검색하던 중 SceneDelegate에서 해주면 된다는 것을 알고 코드를 작성하는데 문득 이 둘의 차이가 뭐지?? 라고 생각해보니 딱히 답할 수 없어서 공부를 했다. 기존에 사용하던 방식은 SceneDelegate는 iOS 13.0부터 생긴 개념이라 13.0 버전 이하에서 앱을 만들려면 SceneDelegate class 자체를 @available(iOS 13.0, *)..
-
210513 - TILTIL/2021 2021. 5. 14. 00:25
Swift 오늘 공부한 건 Conditional Statement 가물가물했던 건 Expression Pattern Conditional Statement if statement switch statement Pattern matching Interval matching Value binding pattern case let, case var where과 자주 사용된다. Tuple을 binding 하려면? case let(a, b): case (let a, var b): case (let a, _): Expression Pattern pattern, interval matching을 할 때 custom type이라면 뭘 어떻게 비교해야할지 모르기 때문에 이때 ~=를 override 해주면 매칭 시킬 수 ..
-
210512 - TILTIL/2021 2021. 5. 13. 00:56
Swift Custom Operator를 직접 만 들일이 없어서 선언하는 방법이 가물가물.. 해서 복습을 다시 했다, Operator Operator - Operand Unary operator Prefix operator Postfix operator Binary operator Infix operator Ternary operator Precedence (우선순위) Default precedence 단독으로 사용하면 괜찮지만 다른 연산자와 사용하면 에러가 발생한다. Associcativity (결합성) Left Right Remainder Operator a % b 나머지를 구할때 사용하는 연산자 정수만 지원 실수의 나머지를 구하고 싶다면 truncatingRemainder(dicidingBy:)를 ..
-
210509 - TILTIL/2021 2021. 5. 10. 01:07
Swift 기본적인 상수, 변수, 타입에 대해서 복습했다. Variable, Constant NamingConvension Scope DataType Type Inference Type Annotation Type Conversion conversion에 실패하면 nil이 return 될 수 있다. Type Alias SqlException: The DELETE statement conflicted with the REFERENCE constraint "FK_AspNetUsers_Family_FamilyId". Family 테이블을 삭제하려고 하는데 이러한 문제가 발생했다. User와 Family를 직접 연결했는데 familyID도 nullable로 선언했고 migration에서 Delete도 바꿔봤지만..
-
210507 - TILTIL/2021 2021. 5. 8. 01:11
Swift 복습 Swift 공부를 따로 안 하면 까먹으니까 계속해줘야 한다!! 오늘은 간단히 기본적인 부분을 복습했다. Token 공백, 구두점 Expression Evaluate Statement work Literal Identifier Keyword CompileTime - RunTime FirstClassCitizen Computer Architecture 단순히 앱 개발만 공부해서는 부족하니까 오늘부터 컴퓨터 구조에 대해서 공부를 시작했다. 컴퓨터구조 - 운영체제 - 네트워크 - 데이터베이스 이렇게 공부를 할 생각이다. Moore’s Law Number of transistors that can be integrated on single chip would double about every tw..
-
210505 - TILTIL/2021 2021. 5. 6. 03:19
FileManager FileManager 다수의 데이터를 저장할 때는 CoreData를 이용한다. App sandbox App을 설치하면 만들어지고 앱과 관련된 모든 file은 여기에 저장된다. 4개의 Bundle, iCloud, System, Data Container가 존재한다. Bundel Container 읽기 전용 실행파일, 리소스가 저장된다. iColud Container 동기화 데이터 Data Container Documents Directory 사용자가 직접 생성한 데이터를 저장 Library Dir 사용자가 직접 생성하지 않았지만 영구적으로 저장할 데이터 Cache Dir cache 데이터가 들어간다. 저장공간이 부족하면 알아서 삭제된다. 백업에서 제외시켜야한다. tmp Dir 임시 d..