반응형

전체 글 421

[Swift] 날짜 다루기, 오늘 날짜 조회, 시간 계산 (Date, Calendar, DateComponents)

Swift에서 시간 다루는 방법 Date, Calendar, DateComponents 설명 및 사용 방법 1. Date A specific point in time, independent of any calendar or time zone. 달력이나 시간대와 관계없이 특정 시점입니다. 1) 현재 시간 가져오기 let date = Date() 2) Date를 원하는 Format으로 가져오기 (Date -> String) let date = Date() let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"// Format 설정 let dateString = dateFormatter.string(for: date) ..

[Swift / Objective-c] 디바이스 USIM 확인하기 (유심 확인)

디바이스에 USIM이 있는지, 통신사 등 확인하는 방법 CTTelephonyNetworkInfo를 사용하여 providers를 조회하여 USIM 유무를 확인한다. mobileNetworkCode와 mobileCountryCode를 확인하여 유심이 있는지 확인한다. 테스트한 결과, 6s는 providers가 1개, 아이폰 13 mini, Xr, 11 pro max는 providers가 2개 조회된다. 아마도 USIM, eSIM을 지원하는 디바이스에서는 Providers가 2개 조회되는 듯하다. USIM 1개만 존재하는 경우, 모든 providers를 조회하여 mobileNetworkCode가 있는 경우를 USIM이 있는 경우로 판단한다. Swift import CoreTelephony let network..

[Swift] 키체인 설명 및 사용 방법 (Keychain)

키체인이란 무엇인지, 어떻게 사용하는지 간단하게 설명합니다. 키체인(Keychain)이란? - 암호화된 데이터베이스 - 즉, 데이터를 안전하게 저장할 수 있는 보관소 키체인 특징 - 앱을 삭제하더라도 데이터는 삭제되지 않음 - 키체인 아이템은 정보와 속성으로 구성됨 - iOS 앱은 단일 키체인에 접근할 수 있음 - 사용자 기기 잠금 상태에 따라 키체인 잠금 상태도 동일하게 유지됨 Keychain Service API - 키체인이라는 암호화된 데이터베이스에 사용자 데이터를 안전하게 저장하는 API - 단순한 비밀번호뿐 아니라 신용 카드 정보, 인증서 등 다양한 항목을 저장할 수 있음 Keychain Items - 암호나 암호화 키와 같은 비밀을 저장하려면 키체인 항목으로 패키징 - 키체인 아이템은 데이터 ..

[iOS] localizedDescription error 'the operation couldn’t be completed' 해결 방법

Swift에서 Custom Error 정의 후 에러 메시지를 가져오기 위해 localizedDescription를 호출하면 아래와 같은 오류가 발생했다. The operation couldn't be completed 해당 오류는 localizedDescription 이 정의되지 않았을 경우 디폴트로 보여주는 localizedDescription이다. LocalizedError를 준수하는 localizedDescription는 아래와 같이 public var errorDescription: String?로 정의해야 한다. extension MyError: LocalizedError { public var errorDescription: String? { switch self { case .invalidU..

iOS/오류 해결 2022.09.22

[iOS] CocoaPods 'Oh no, an error occurred.' 해결 방법

M1 아이맥에서 CocoaPods Install 또는 Update 시 아래와 같은 오류가 발생한다. ――― TEMPLATE END ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― [!] Oh no, an error occurred. Search for existing GitHub issues similar to yours: https://github.com/CocoaPods/CocoaPods/search?q=dlopen%28%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.5%2Flib%2Fffi_c.bundle%2C+0x0009%29%3A+tried%3A+%27%2FLibrary%2FRuby%2..

iOS/오류 해결 2022.09.20

[Swift] UITabBarController 이미지 설정

UITabBarController에서 tabBarItem에 이미지를 적용시킬 경우 아래와 같이 설정한다. navigationController.tabBarItem.image = UIImage(named: "image.png") navigationController.tabBarItem.selectedImage = UIImage(named: "selectedImage.png") 위와 같이 진행할 경우, 이미지가 tntColor로 모두 채워지는 문제가 있는데, 그럴 때는 아래와 같이 renderingMode를 alwaysOriginal로 설정해준다. navigationController.tabBarItem.image = UIImage(named: "image.png")?.withRenderingMode(.al..

[Swift] FileManager로 디바이스에 파일 저장하기 (Document)

FileManager 사용하여 디바이스에 파일 저장하기 (Document) 아이폰에 기본적으로 있는 '파일' 앱에 파일을 저장하는 방법입니다. 목차 사용 방법 저장된 파일 확인 참고사항 사용 방법 1. 코드 작성 설명은 주석을 확인해주세요. let fileManager = FileManager.default // 도큐먼트 URL let documentURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first! // 도큐먼트 URL에 생성할 폴더명 let directoryURL = documentURL.appendingPathComponent("FolderName") do { // 폴더 생성 try fileManager.create..

[iOS] Binary operator '+' cannot be applied to operands of type 'DispatchTime' 해결 방법

Binary operator '+' cannot be applied to operands of type 'DispatchTime' and 'Int' 오류 해결 방법 DispatchQueue.main.async 호출 시 deadline(DispatchTime)에 아래와 같이 Int 입력 시 오류가 발생한다. DispatchQueue.main.asyncAfter(deadline: .now() + 1) {// 오류 // code } 발생 오류 Binary operator '+' cannot be applied to operands of type 'DispatchTime' and 'Int' 해결 방법 let afterTime = DispatchTimeInterval.seconds(1) DispatchQueue...

iOS/오류 해결 2022.07.01

[MAC] Apple에서 악성 소프트웨어가 있는지 확인할 수 없기 때문에 열 수 없습니다. 문제 해결

간혹 MAC에서 출처를 알 수 없는(?) 소프트웨어(앱)를 사용하려고 할 때 아래와 같은 오류가 발생하며 실행할 수 없다. Apple에서 악성 소프트웨어가 있는지 확인할 수 없기 때문에 열 수 없습니다. 해당 오류를 해결하는 방법은 아래와 같다. 1. 시스템 환경설정 앱 실행 후 '보안 및 개인 정보 보호'로 이동 2. '일반' 탭으로 이동 후 하단에 소프트웨어명 확인 후 오른쪽 '확인 없이 열기' 클릭 '확인 없이 열기' 버튼을 클릭하면 아래처럼 안내 영역이 사라진다. 3. 소프트웨어를 다시 열어서 '열기' 클릭 이제부터 문제없이 소프트웨어 사용이 가능하다!

iOS/기타 2022.06.30
반응형