본문 바로가기
300x250

iOS119

PCH 파일 Pre Compile Header? 컴파일을 빠르게 할 수 이도록 해준다. 같은 헤더파일을 반복해서 컴파일 하지 않고 미리 한 번 컴파일 한다. pch 파일 생성하기 1. new file 2. template 중에서 "header file" 또는 "PCH file"을 선택한다. 3. Project - Target - build setting - 'Apple Clang - Language' - Prefix Header -> $(SRCROOT)/$(PROJECT_NAME)/생성한 prefix파일명.pch 2022. 7. 29.
웹 페이지의 자바스크립트 통신(JS <-> Swift) 웹페이지의 객체에 대한 동작을 네이티브에서 작업 해야한다면 , 자바스크립트의 messageHandler에서 네이티브에서 사용할 이름을 넣어주고 네이티브에서는 이 이름을 이용하여 해당 객체에 대한 동작을 구현 해줄 수 있다. 네이티브에 웹 연결 1. 'WKScriptMessageHandler'를 채택해준다. class ViewController: WKScriptMessageHandler 2. 이 프로토콜 채택하게 되면 필수적으로 구현해주어야 하는 함수를 추가해준다. func userContentController( _userContentController: WKUserContentController, didReceive message: WKScriptMessage) { // 웹 페이지의 작업을 처리하는 곳.. 2022. 7. 13.
ViewController present (VC1위에 VC2 present) 만약, 현재 화면에 다른 ViewController를 present 하고 싶고 아래와 같이 새로운 ViewController가 보이더라도 현재 화면이 투명하게 보이는 화면을 만들고 싶다면! 1) 방법 1 현재 화면을 캡처하여 새로운 화면에 이미지로 세팅 해주는 방식 imgView와 coverView의 오토레이아웃은 화면 전체(safeArea까지 덮는 superView)로 잡고 // 현재 화면을 캡처하는 기능을 extension으로 추가 extension UIView { func viewToImage() -> UIImage { let renderer = UIGraphicsImageRenderer(bounds: bounds) return renderer.image(actions: { rendererConte.. 2022. 7. 5.
Date calendar와 date 시간차이 date는 0시 기준 calendar는 +9시간 기준 따라서, 9시간의 차이를 가지고 원하는 날짜를 뽑아오면 됨 Calendar weekdaySymbols (lldb) po calendar.weekdaySymbols ▿ 7 elements - 0 : "Sunday" - 1 : "Monday" - 2 : "Tuesday" - 3 : "Wednesday" - 4 : "Thursday" - 5 : "Friday" - 6 : "Saturday" (lldb) po calendar.shortWeekdaySymbols ▿ 7 elements - 0 : "Sun" - 1 : "Mon" - 2 : "Tue" - 3 : "Wed" - 4 : "Thu" - 5 : "Fri" - 6 : ".. 2022. 6. 10.
버전업 앱스토어 배포 1. 앱스토어 커넥트 - 나의앱 2. 'iOS 앱' 우측 '+' 버튼 클릭 3. 업그레이드 사항 적어주기 4. 빌드 선택 적용 5. 앱 심사 정보에 테스트에 필요한 정보 적어주기 6. 저장 심사 요청 xcode에서 아카이브 후 업로드 해야 오류 없이 정상적으로 앱스토어커넥트에 올라간다 2022. 6. 10.
화면 간 데이터 전달 화면 간 데이터를 전달 할 때 사용할 수 있는 방법 크게 두가지, 특정 액션이 이뤄지면 다른 ViewController로 전달한다는 목적을 가진다. 1. Delegate 서로 다른 ViewController가 1:1로 연결될 때 예를 들어, 로그인을 해야하는 상황일 때 ' 메인VC -> 로그인VC -> 메인VC ' (메인 화면에서 로그인 화면으로 넘어갔다가 로그인이 완료되면 다시 메인으로 돌아오는 프로세스) 메인VC와 로그인VC가 1:1로 연결되므로 로그인VC에서 딜리게이트(protocol)을 생성하여 로그인이 완료되면 로그인delegate를 채택한 메인VC에서 감지하여 필요한 동작을 수행하게 해준다 코드 예제 2. Notification observer 하나의 ViewController에서 다른 여러 .. 2022. 6. 10.
NotificationCenter(Observer) 노티피케이션센터는 string 키값을 이용해 여러 화면으로 noti를 보내 원하는 동작을 수행할 수 있게 해준다. 그래서 여러 화면에서 특정 액션을 캐치할 필요가 있다면 NotificationCenter 사용이 적합하다. 다만, string을 이용하면서 오탈자 발생 가능성이 있고, NotificationCenter.default에서 모든 noti가 관리되어서 딜리게이트(프로토콜)와 달리 추적이 쉽지 않다. 그래서 extenstion으로 Notification을 관리해주는 별도 클래스를 두는 것이 좋다. NotificationCenter class Notification.h typedef enum { messageNoti // 간단하게 noti key도 이렇게 관리 messageAdd, messageDel.. 2022. 6. 10.
뒤로가기 스와이프 감지 - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { if (navigationController.topViewController.transitionCoordinator) { [navigationController.topViewController.transitionCoordinator notifyWhenInteractionChangesUsingBlock:^(id context) { if (context.isCancelled == NO) { // back 성공 // do som.. 2022. 6. 2.
integer 값 참조 오류 NSInteger로 값을 사용하다보면 막상 길게 의도 하지 않은 숫자로 바뀔때가 있다. 그럴때는 NSNumber의 값을 int로 형변환 하여 사용하면 된다. NSNumber * idxNum = 원하는 숫자; int idx = [idxNum intValue]; 2022. 5. 20.
300x250