반응형 전체 글45 [iOS] CocoaPods 의존성 설치 문제 해결하기 문제 상황`pod install` 명령어 실행 시 다음과 같은 에러가 발생:undefined method 'request' for nil (NoMethodError)...Unable to satisfy the following requirements:- `ffi (= 1.17.0)` required by `user-specified dependency`원인 분석1. Ruby 버전 불일치2. RubyGems 시스템 업데이트 문제3. 의존성 충돌4. CocoaPods 설치 경로 충돌해결 과정1. Ruby 버전 확인 및 업데이트# Ruby 버전 확인ruby -v# rbenv를 통해 필요한 Ruby 버전으로 변경rbenv global# 변경 확인ruby -v2. 의존성 파일 정리rm -rf Gemfile.loc.. 2025. 1. 19. [Swift] 스위프트 메모리 관리 이번 게시글에서는 스위프트에서 메모리 관리에 대해서 알아보겠습니다. 메모리 관리와 ARC (Automatic Reference Counting) 스위프트에서 메모리를 관리하는 방법 중 하나는 ARC, 즉 Automatic Reference Counting입니다. 이것은 클래스 인스턴스를 더 이상 사용하지 않을 때 자동으로 메모리에서 해제해주는 기술입니다. ARC는 참조 카운트(Reference Count)를 사용하여 객체의 생존 주기를 관리합니다. 참조 카운트와 메모리 해제 참조 카운트는 현재 인스턴스를 참조하고 있는 개수를 나타냅니다. 참조 카운트가 0이 되면 해당 인스턴스는 더 이상 필요하지 않다는 것을 의미하며, 메모리에서 자동으로 해제됩니다. 참조 카운트는 증가하고 감소할 수 있습니다. 참조 카운.. 2023. 10. 26. [Swift] deinitializer 활용 이번에는 deinitializer가 사용되는 사례에 대해서 알아보려고 합니다. [deinit] deinit은 인스턴스가 메모리에서 해제되기 직전에 호출됩니다. 인스턴스를 해제하기 전에 선행되어야 하는 작업이 있다면 deinit에 구현할 수 있습니다. deinit을 사용하여 파일 핸들을 관리하는 예시 코드를 살펴보겠습니다. class FileHandler { let fileHandle: FileHandle init(filePath: String) { // 파일이 없으면 파일을 생성하고 파일 핸들을 엽니다. if !FileManager.default.fileExists(atPath: filePath) { FileManager.default.createFile(atPath: filePath, contents:.. 2023. 10. 26. [Swift] 클로저의 Escaping과 Capture List 안녕하세요. 클로저를 공부하게 되면서 클로저의 Escaping과 Capture List에 대한 내용을 정리해보려고 합니다. [클로저의 Escaping] 클로저의 escaping 이란 어떤 함수에서 인자 값으로 클로저를 전달을 받을 때 이 클로저가 함수가 종료된 후에도 클로저를 호출할 수 있는 경우에 escaping이라고 합니다. func downloadImage(imageURL: URL, completionHandler: @escaping (UIImage?) -> Void) { let task = URLSession.shared.dataTask(with: imageURL) { data, response, error in if let data = data, let image = UIImage(data: d.. 2023. 10. 24. [Swift] 상수와 변수 Swift에서는 상수와 변수를 제공하고 있습니다. [상수] let 키워드를 사용하여 값을 저장할 수 있지만, 한 번 저장된 값을 다른 값으로 변경할 수 없습니다. let str = "A" str = "B" // cannot assign to value: 'str' is a 'let' constant 상수로 선언된 "str"을 값으로 변경하려고 하면 에러가 발생합니다. 값을 변경할 수 없는 상수 "str"의 값을 변경하려고 하기 때문입니다. 값을 변경하고 싶을 때에는 "str"상수를 변수로 변경해야 합니다. [변수] var 키워드를 사용하여 값을 저장하고, 다른 값으로 변경이 가능합니다. var str = "A" print(str) // "A" str = "B" print(str) // "B" 변수는 값을.. 2023. 10. 23. [iOS] WkWebView에서 window.open / window.close 처리 WKWebView에서 window.open 또는 window.close 대해 처리할 경우가 생기는데 어떻게 처리를 해야 하는지 알아봅시다. 웹뷰에서 window.open을 호출할 때 WKUIDelegate에 있는 webView(_:createWebViewWith:for:windowFeatures:) 함수가 호출됩니다. 이 함수 안에서 새로운 창을 보여주는 화면(createWebView)을 만들어서 세팅을 해주면 새로운 창 화면이 보입니다. 웹뷰에서 window.close를 호출하면 webViewDidClose(_:) 함수가 호출되는데 이 함수에서 새로운 창을 없애는 처리를 하면 됩니다. class ViewController: UIViewController { var createWebView: WKWebV.. 2022. 6. 30. 이전 1 2 3 4 ··· 8 다음 반응형