-
iOS - syntactic sugar, 편의 코드, 슈가 코드 모음ios 2024. 4. 22. 12:31
배열 index out of range 방지
// 배열 index out of range 방지 extension Array { subscript (safe index: Int) -> Element? { return indices ~= index ? self[index] : nil // return indices.contains(index) ? self[index] : nil // return startIndex <= index && index < endIndex ? self[index] : nil // return 0 <= index && index < self.count ? self[index] : nil } } let nums = [1, 2, 3] if let num = nums[safe: 1] { // ~ }
배열 가장 앞에 요소 추가
// 배열 가장 앞에 요소 추가 extension Array { mutating func prepend(_ newElement: Element) { insert(newElement, at: 0) } }
배열 중복값 제거 반환
extension Array where Element: Equatable { // 배열 중복값 제거 반환 func distinct() -> [Element] { var newValue = [Element]() forEach { if !newValue.contains($0) { newValue.append($0) } } return newValue } }
옵셔널 컬렉션 타입, 컬렉션이 nil 또는 empty 여부
extension Optional where Wrapped: Collection { // 컬렉션이 nil 또는 empty 여부 var isNilOrEmpty: Bool { return self?.isEmpty ?? true } }
'ios' 카테고리의 다른 글
Xcode 15.3 issue - Invalid Bundle, app archive validation fail (0) 2024.03.27 Privacy Manifest (0) 2023.12.11 스토리보드 커스텀 폰트 이슈 - Xcode15 (0) 2023.10.23 iOS - SNS 간편 로그인 (네이버 간편 로그인, 네아로) 심사 리젝 reject (0) 2023.05.22 iOS - 접근성, Voice over, custom UIAccessibilityElement (0) 2023.03.15