반응형

전체 글 418

[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

[HTTP] 상태 코드 (Status Code)

HTTP 상태 코드1XX~5XX 설명 1XX : Information 서버가 요청을 받았으며, 처리 중인 경우 현재 거의 사용하지 않음 2XX : Successful 200 OK 요청 성공 201 Created 요청 성공하여 새로운 리소스가 생성됨 202 Accepted 요청을 수신했지만 응하여 처리하지 못함 203 Non-Authoritative Information 돌려받은 메타 정보 세트가 오리진 서버의 것과 일치하지 않지만 로컬이나 서드파티 복사본에 모아졌음을 의미 204 No Content 요청 성공했지만, 응답 페이로드 분몬에 보낼 데이터가 없음. 헤더는 의미 있을 수 있음 3XX : Redirection 3XX 응답의 결과에 Location 헤더가 있으면 Location 위치로 자동 이동함(..

IT/HTTP 웹 2022.06.22

[Objective-c] SQL Cipher 사용하여 db 암호화하는 방법

iOS에서 SQL Cipher 사용하는 방법 SQL Cipher는 database 전체를 암호화해주는 오픈소스 라이브러리이다. 목차 1. SQL Cipher 사용 방법 2. 암호화 적용되었는지 실제 기기에서 확인하는 방법 1. SQL Cipher 사용 방법 1. framework 추가 Project > TARGETS > General > Frameworks, Libraries, and Embedded Content 이동 후 Security.framework 추가 2. CocoaPod 추가 pod 'SQLCipher', '~>4.0' 추가 # Uncomment the next line to define a global platform for your project # platform :ios, '9.0' ..

[SQLite] SQLite 주요 API

SQLite 주요 API Objective-C에서 사용하는 API 위주로 설명한다. sqlite3_open() 데이터베이스 파일이 있다면 파일을 열고, 없다면 생성 후 연다. 성공 시 SQLITE_OK 리턴한다. int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); * 데이터베이스 파일 open, close의 경우는 상황에 따라 처리한다. - 많은 양을 빠르게 작업할 때 작업 시작 시 open, 완료 후 close 진행 - 적은 양을 처리할 때, 작업 별로 open, close 진행 sqlite3_close() 데이터베이스 파일을 닫는다. 성공 시 ..

IT/기타 2022.06.16
반응형