반응형 swift37 [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. 이전 1 2 3 4 ··· 10 다음 반응형