swift28 [Swift & iOS] Swift 접근제어자 정리 (private, fileprivate, internal, public, open) 안녕하세요, 오늘은 Swift에서 정말 자주 쓰이지만 헷갈리기 쉬운 접근제어자(Access Control)에 대해 정리해보려고 합니다.1. 접근제어자란?접근제어자는 코드의 사용 범위(접근 가능 범위)를 제한하는 키워드입니다.코드의 캡슐화, 모듈화, 안전성을 높이기 위해 꼭 필요하죠.Swift에서 제공하는 접근제어자는 아래와 같습니다. 접근제어자접근 가능 범위open모듈 외부에서 상송/오버라이드까지 허용public모듈 외부에서 사용만 허용, 상속/오버라이드 불가internal같은 모듈(프로젝트) 내에서만 사용 가능fileprivate같은 파일 내에서만 사용 가능private같은 타입(클래스/구조체/익스텐션) 내부에서만 사용 가능 2. 각 접근제어자 예시와 설명2-1. private정의: 선언된 타입(클래스.. 2025. 7. 9. [Swift & iOS] Xcode 16.2 'pod init' 에러 관련 안녕하세요,최근 Apple에서는 앱스토어에 앱을 제출하는 개발자들에게 중요한 변경 사항을 공지했습니다. 2025년 4월 24일부터 모든 iOS 및 iPadOS 앱은 iOS 18 SDK 이상, 즉 Xcode 16 이상으로 빌드되어야 한다고 합니다.그래서 미리 Xcode를 16.2로 업데이트하고 새 프로젝트를 생성한 후 pod init 명령어를 실행하려 했는데, 예상치 못한 에러가 발생했습니다. 처음 겪어보는 상황이라 당황했지만, 해결 후 그 해결 방법을 공유하려 합니다. 해결 방법프로젝트 파일 수정프로젝트 파일(xxxx.xcodeproj)을 우클릭하여 패키지 내용 보기를 선택합니다.project.pbxproj 파일을 텍스트 편집기로 엽니다.PBXFileSystemSynchronizedRootGroup 수정.. 2025. 3. 11. [Swift & iOS] Xcode : Sandbox: rsync.samba(nnnnn) deny(1) file-write-create 관련 에러 외부 라이브러리 설치 후 빌드를 했더니 Sandbox: rsync.samba(nnnnn) deny(1) file-write-create 에러가 발생 하면서 빌드가 안되는 이슈가 발생하였습니다.해결방법Xcode > PROJECT > Build Settings > Build Options > User Script Sandboxing Yes를 No로 수정 하면 됩니다.아래 사진 참고바랍니다.User Script Sandboxing 스크립트가 의도치 않게 시스템의 중요한 부분을 변경하거나, 악성 행동을 수행하지 못하도록 방지하는 중요한 보안 기능입니다참고:https://developer.apple.com/forums/thread/731041 2024. 9. 3. [Swift & iOS] Swift에서 'stride' 함수 사용하기 Swift에서는 일정한 간격으로 반복되는 값을 생성하기 위해 stride 함수를 사용할 수 있습니다. 이 함수는 숫자의 시퀀스를 생성하는 데 유용하며, 두 가지 버전이 있습니다1. stride(from:to:by:) 2. stride(from:through:by:) 1. stride(from:to:by:)시작 값에서 종료 값을 포함하지 않는 시퀀스를 생성합니다stride(from: start, to: end, by: step) start: 시작 값end: 종료 값 (포함되지 않음)step: 증가 값예시let sequence = stride(from: 0, to: 10, by: 2) for value in sequence { debugPrint(value) } 출력결과02468 2. stride(from.. 2024. 7. 22. [Swift & iOS] UITableViewCell TextLabel deprecated 관련 iOS 14 이후부터 셀을 더 유연하게 구성하기 위해 UITableViewCell의 디자인 패턴을 업데이트 했습니다. 새로운 디자인 패턴에서는 textLabel, detailTextLabel, imageView 등의 속성 대신에 셀에 보여지는 컨텐츠를 개별적으로 구성할 수 있는 커스텀 콘텐츠 뷰를 사용하는 것이 권장됩니다. 예시 코드 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "identifier", for: indexPath) if #available(iOS 14.0, *).. 2024. 2. 27. [Swift & iOS] Xcode Code Sense Xcode로 코드를 작성하면서 클래스, 메서드, 변수 등의 이름을 입력할 때, 관련된 정보와 문맥을 분석하여 자동완성을 자주 사용하실겁니다. 그때 여러 리스트들과 함께 아이콘이 있는걸 보셨을텐데 아이콘이 어떤걸 의미하는지 정확히 알고자 정리해봅니다. 1. Red: macros 매크로 (#define) 2. Brown: Core Data / namespace C = modeled class M = modeled method P = modeled property N = C++ namespace 3. Orange: aliased types C_ = Objective-C category E = enum T = typedef / typealias Ex = Swift extension 4. Green: variab.. 2023. 8. 29. 이전 1 2 3 4 5 다음