SWiFT 21

Swift) Delegate, Notification 둘 중 어느 것을 사용해야 할까

앱에서 화면 간 데이터 전달을 위해 여러 방식이 있는데 대표적으로 Delegate와 Notification이 있는데 둘 중에 어떠한 상황에서 어떤 것을 쓰는게 좋을까 생각해 보았다. 일단 각 패턴에 대해 알아보자 Delegate Delegate 패턴은 다른 객체의 인스턴스를 내부적으로 가지고 있어 그 인스턴스를 활용하는 방식으로 사용 Notification 값의 변화에 따라 이벤트가 발생해야할 때 이것을 observe 하고 있는 방식으로 사용 구현 방법 및 사용방법 Delegate Delegate를 위한 프로토콜이 필요하다. 이벤트 처리 담당 객체가 알고 있어야함 Notification 값의 변화가 필요한 값에 observe하고 그에 맞는 이벤트만 발생시켜주면 됨 각 패턴의 장단점 Delegate 장점 ..

iOS/Swift 2022.10.12

Swift) Realm 연동하기

Realm 연동하기 1. 터미널 프로젝트 경로로 이동 cd "프로젝트 경로"2. CocoaPod 설치하기 sudo gem install cocoapods3. Podfile 생성 pod init4. Podfile 수정 (RealmSwift 추가) - nano 에디터 사용 sudo nano Podfile4-1. Podfile에 pod 'RealmSwift' 내용 입력 # Uncomment the next line to define a global platform for your project # platform :ios, '9.0' target 'ProjectManager' do # Comment the next line if you don't want to..

iOS/Swift 2022.10.12

Swift) DatePicker

DatePicker UIDatePicker란?? A control for inputting date and time values. -> 날짜 및 시간 값을 입력하기 위한 컨트롤 사용자가 원하는 날짜 및 시간을 선택하기 위한 컨트롤러로 보인다. DatePicker 구성 DatePicker를 구성하는 핵심 속성표 Style: DatePicker의 모양을 결정, datePickerStyle 프로퍼티를 사용하여 런타임에 이 값에 액세스 합니다. 각 Style 적용화면 automatic compact inline wheels 날짜 및 시간 표시 제어 속성 표 Date 기본 속성은 현재 날짜 기준으로 표기, 날짜 속성을 설정하는 것과 동일한 방식으로 수정가능 Constraints 선택 가능한 날짜의 범위, 범위 설..

iOS/Swift 2022.09.10

Swift) TableView Swipe

TableView Swipe 삭제나 편집을 위한 이벤트를 Swipe를 통해 구현해보자 TableView의 leadingSwipeActionsConfigurationForRowAt, trailingSwipeActionsConfigurationForRowAt 활용 |왼쪽으로 Swipe|여러 개의 item| |:---:|:---:| ||| 왼쪽 Swipe 적용 코드 TableView leadingSwipeActionsConfigurationForRowAt를 통해 해당 셀에 대한 이벤트를 구현할 수 있었다. func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeA..

iOS/Swift 2022.08.20

Swift) Localize

LocalAccessbility 적용하는 방법 스토리 보드 Project -> info -> + -> 원하는 나라 추가 그렇게 되면 Main.storyboard 하위 목록에 파일이 추가 됩니다. Object ID 확인 후 해당 나라의 언어 입력 코드 Localizable.strings 파일 생성 Localize.. 버튼 클릭 후 원하는 나라 선택 스토리 보드 1번과 동일한 과정 진행 “key” = “value”; 형태로 작성 "key"는 원본 데이터 ex) 기본 값이 “Hi” 한국어 “안녕” -> “Hi” = “안녕”; 비교 영어 한글

iOS/Swift 2022.08.18

Swift) UIRefreshControl 사용

위로 당겨서 새로고침 프로젝트 진행하면서 서버 데이터들이 업데이트가 될 수도 있기 떄문에 바로 바로 확인하기 위해서 새로고침 기능이 필요하다고 느껴서 구현해 보았습니다. 필요한 것 UIRefreshControl 인스턴스 생성! let refreshControl = UIRefreshControl()UIRefreshControl 이란?? 공식문서 설명으로 "스크롤 보기의 내용 새로 고침을 시작할 수 있는 표준 컨트롤" 이라고 되어 있습니다. 무슨 뜻인가 생각해보니 아래 사진을 보고 이해했는데 또한 공식문서 내용 중 "You use that notification to update your content and dismiss the refresh control." -> 해당 알림을 사용하여 콘텐츠를 업데이트하..

iOS/Swift 2022.08.03

Swift) iOS 메모리 영역 확인하기(Stack)

메모리 영역 확인해보자 (Stack) 메모리 확인 순서 LLDB에서 원하는 프로퍼티의 메모리 주소를 알아낸 다음.. 터미널창에서 Stack에 메모리 할당 영역을 확인 해보자 LLDB에서 메모리 확인하는 법 po withUnsafePointer(to: &(변수명)){$0}터미널창에서 Stack 메모리 할당 영역 확인 하는 법 vmmap (프로젝트PID) | grep Stack실제로 메모리 확인 해보자!! 프로젝트 PID 확인 LLDB에서 메모리 주소 확인 터미널에서 Stack 메모리 할당 영역 확인 확인 해보니 3개의 프로퍼티 str1, str2, classA는 Stack 영역 안에 있는 것 같다.? 의문점 classA는 Class를 인스턴스화 해주었는데 Stack 영역에 저장되는 것 같다?? 터미널에서 ..

iOS/Swift 2022.07.25