반응형
OptionSet
이란?
OptionSet
은 Swift에서 비트마스크(Bitmask) 를 쉽게 다룰 수 있도록 도와주는 프로토콜입니다.
여러 개의 옵션을 조합하여 사용할 때 유용하며, Set
처럼 동작하지만 내부적으로는 비트 연산을 활용하여 최적화됩니다.
예를 들어, 파일 권한(읽기
, 쓰기
, 실행
)을 다룰 때 OptionSet
을 사용하면 코드가 더 깔끔하고 효율적으로 작성됩니다.
OptionSet
사용 예제
아래는 파일 접근 권한을 OptionSet
으로 정의한 예제입니다.
struct FilePermissions: OptionSet {
let rawValue: Int
static let read = FilePermissions(rawValue: 1 << 0) // 0b001
static let write = FilePermissions(rawValue: 1 << 1) // 0b010
static let execute = FilePermissions(rawValue: 1 << 2) // 0b100
static let all: FilePermissions = [.read, .write, .execute]
}
// 사용 예제
var myPermissions: FilePermissions = [.read, .write]
if myPermissions.contains(.read) {
print("읽기 권한 있음")
}
myPermissions.insert(.execute) // 실행 권한 추가
print(myPermissions) // FilePermissions(rawValue: 7) → 모든 권한 포함됨
OptionSet
을 사용하면 좋은 경우
여러 개의 옵션을 조합하여 사용해야 할 때
비트 연산을 활용하여 성능을 최적화하고 싶을 때
설정, 권한, 상태 플래그 등을 쉽게 관리하고 싶을 때
반응형
'Programming > Swift' 카테고리의 다른 글
Swift struct 배열에서 내부 값 수정하기 (0) | 2025.04.08 |
---|---|
Actor가 처음이라고요? (0) | 2025.01.01 |
swift 주석 관련 공식 문서 (Swift Markup Formatting Reference) (0) | 2024.08.01 |
MVVM+Router (0) | 2024.04.18 |
[SwiftUI] 애플에서 제공하는 LazyVGrid 구현 예제 (0) | 2023.07.03 |