# iOS | Swift 26

[Alarm] #-1. 사운드 옵션 화면 추가 및 선택한 알람 사운드 전달하기

개발 일자 : 2022. 1. 19 이건 좀 써둬야겠다고 생각이 드는 것이 한 번씩 있는데 요 알람 앱을 만들면서 좀 더 그런 생각이 많이 들었다 간단한 것들 중에서도 처음 해보는 방식이거나 생각해봐야 할 것들이 끊임없이 있더라 (느닷없이 왼쪽 엄지 손가락 관절이 아픈데,, 왜지) 암튼 생각 정리가 필요해서 오늘부터 적기 시작..! 이전 날짜도 중요한 건 적어둬야지 알람 사운드 옵션 화면 추가 스토리보드에 사운드 옵션 선택을 위한 화면(AlarmSoundVC) 추가 번외로 셀 선택했을 때 deselect 하는 코드를 tableView(didDeselectRowAt:) 메서드에 넣고 있었다는 걸 깨닫고 tableView(didSelectRowAt:) 메서드로 변경해줌 AlarmSoundVC 에 사운드 목록..

[Alarm] #. 설정한 시간에 알람이 울리도록 구현

개발 일자 : 2022. 1. 26 이전까지 구현한 것은 알람을 추가하거나 수정 및 삭제했을 때 선택한 시간 및 사운드 등을 포함한 알람 정보가 AlarmManager 에 적용되도록 하였다. 이제 해당 알람 정보를 토대로 실제로 notification 을 통한 알람이 울리도록 해야하는데, 이전에 AlarmListVC 에서 왼쪽 상단의 바 버튼을 눌렀을 때 ~초 후에 notification 이 오도록 구현했었는데 해당 코드를 AlarmManager 로 옮겨왔다. AlarmListVC 에 notification(UNUserNotificationCenter.current()) 프로퍼티가 있었는데 해당 프로퍼티도 AlarmManager 로 가져왔고 Notification 권한과 관련된 것은 해당 뷰컨트롤러가 로..

Hugging Priority vs. Compression Resistance Priority

Hugging Priority 와 Compression Resistance Priority 를 설명하기 앞서 Intrinsic Content Size 에 대해 가볍게 알고가자면... Intrinsic Content Size UI framework 에서 제공하는 일부 뷰에는 컨텐츠 고유 사이즈(Intrinsic Content Size)라는 개념이 있음 → 예. UILabel, UIButton 등 텍스트나 이미지 크기에 따라 크기가 결정되는 뷰 → 다른 뷰들 간에 걸린 제약에 의해 본래 Intrinsic Content Size 보다 줄어들거나 늘어나게 됨 → Label 의 leading / trailing 또는 width / height 등이 설정되지 않았는데도 에러가 발생하지 않음 → Label 안에 들어..

# iOS | Swift 2022.01.04

ViewController Life Cycle

■ VC 의 상태를 4 가지로 구분할 수 있다 Appearing : 뷰가 화면에 나타나고 있는 상태 Appeared : 뷰가 화면에 나타나는게 완료된 상태 Disappearing : 뷰가 화면에서 사라지고 있는 상태 Disappeared : 뷰가 화면에서 사라진 상태 ■ VC 의 흐름은 다음과 같다고 할 수 있다 viewDidLoad -> viewWillAppear -> viewDidAppear -> viewWillDisappear -> viewDidDisappear Life Cycle Method — Managing the View loadView() ■ 이 메소드를 절대 직접적으로 호출해서는 안됨 ■ 컨트롤러가 관리하는 뷰를 만드는 역할을 함 → 뷰를 만들고 메모리에 올리는 과정 ■ view 프로퍼티..

# iOS | Swift 2022.01.03

[Article] Choosing Between Structures and Classes

Choosing Between Structures and Classes — Deside how to store data and model behavior mutating 을 공부하면서 든 의문점 중 하나는 만약 mutating 을 써야할 필요가 있는 경우에 굳이 뭔가 데이터를 변경하기 위해 mutating 키워드를 사용해야 한다면 클래스를 사용하는게 낫지 않을까? 왜 swift는 mutating 이란 기능을 만든걸까? 한 구조체 내에서 mutating 을 너무 자주 사용한다면 성능적으로 더 안 좋은 점이 있는건가? 데이터가 메소드내에서 자주 변경된다면 클래스를 사용하는게 더 나은걸까? 뭐 이런 생각이 들면서 그렇다면 구조체와 클래스를 언제 써야 좋은것일지 판단하기가 어려워졌다 전에 부캠을 할 때도 이런 ..

[요약본] Method

Methods — The Swift Programming Language (Swift 5.5) Method 란, 특정 타입과 관련된 함수 function 를 의미함 클래스, 구조체, 열거형 모두 Instance Method 를 정의할 수 있음 또한 Type Method 도 정의할 수 있음 Instance Method : 해당 타입의 instance 내에서 특정 작업과 기능을 하는 함수 Type Method : Type 자체와 연관된 함수. Objective-C 에서의 class method 와 유사함 Swift 의 구조체와 열거형에서 method 를 정의할 수 있다는 것은 C와 Objective-C 와의 아주 큰 차이임 C와 Objective-C 에서는 클래스가 함수를 정의할 수 있는 유일한 타입임 In..