투케이2K

26. (TWOK/UTIL) [Ios/Swift] S_Extension - String , Int , UIDevice , Date 등 데이터 타입 extension 정의 파일 본문

투케이2K 유틸파일

26. (TWOK/UTIL) [Ios/Swift] S_Extension - String , Int , UIDevice , Date 등 데이터 타입 extension 정의 파일

투케이2K 2022. 3. 27. 19:31

[설 명]

프로그램 : Ios / Swift

설 명 : String , Int , UIDevice , Date 등 데이터 타입 extension 정의 파일

 

[소스 코드]

 

import Foundation
import UIKit
import SafariServices
import AVFoundation


// MARK: - [클래스 설명]
/*
// -----------------------------------------
1. Extension 관련 정의 파일
// -----------------------------------------
*/





// MARK: - [전역 변수 선언 실시]





// MARK: - [extension 정의 실시 : UIDevice]
extension UIDevice {
    
    
    static func sound() {
        
        /*
        // -----------------------------------------
        [sound 메소드 설명]
        // -----------------------------------------
        1. 디바이스 사운드 재생 메소드 : 무음 모드일 경우도 소리 재생됨
        // -----------------------------------------
        2. 필요 import : import AVFoundation
        // -----------------------------------------
        3. 호출 방법 : UIDevice.sound()
        // -----------------------------------------
        */
        
        //AudioServicesPlaySystemSound(SystemSoundID(1003)) // SMSReceived [ReceivedMessage.caf]
        //AudioServicesPlaySystemSound(SystemSoundID(1004)) // SMSReceived [SentMessage.caf]
        //AudioServicesPlaySystemSound(SystemSoundID(1016)) // SMSSent [tweet_sent.caf]
        AudioServicesPlaySystemSound(SystemSoundID(1307)) // SMSReceived_Selection [sms-received1.caf]
    }
    

    
    static func vibrate() {
        
        /*
        // -----------------------------------------
        [sound 메소드 설명]
        // -----------------------------------------
        1. 디바이스 진동 기능 수행 메소드
        // -----------------------------------------
        2. 필요 import : import AVFoundation
        // -----------------------------------------
        3. 호출 방법 : UIDevice.vibrate()
        // -----------------------------------------
        */
        
        // -----------------------------------------
        //AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) // 전화 진동
        AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
        // -----------------------------------------
        let tapticFeedback = UINotificationFeedbackGenerator() // 햅틱 진동
        tapticFeedback.notificationOccurred(.success)
        // -----------------------------------------
        //let tapticFeedback = UIImpactFeedbackGenerator(style: .heavy)
        //tapticFeedback.impactOccurred()
        // -----------------------------------------
    }
}





// MARK: - [extension 정의 실시 : Data]
extension Data {
    
    
}





// MARK: - [extension 정의 실시 : 뷰 컨트롤러]
extension UIViewController {
    
    
}



// MARK: - [extension 정의 실시 : Int]
extension Int {
    
    
    var isEven : Bool {
        
        /*
        // -----------------------------------------
        [isEven 설명]
        // -----------------------------------------
        1. 정수 값 짝수 여부 확인 실시
        // -----------------------------------------
        2. 호출 방법 : intData.isEven
        // -----------------------------------------
        3. 리턴 데이터 : 짝수일 경우 true / 아닌 경우 false
        // -----------------------------------------
        */
        
        // [리턴 데이터 반환]
        return self % 2 == 0
    }
    
    
    
    var isOdd : Bool {
        
        /*
        // -----------------------------------------
        [isOdd 설명]
        // -----------------------------------------
        1. 정수 값 홀수 여부 확인 실시
        // -----------------------------------------
        2. 호출 방법 : intData.isOdd
        // -----------------------------------------
        3. 리턴 데이터 : 홀수일 경우 true / 아닌 경우 false
        // -----------------------------------------
        */
        
        // [리턴 데이터 반환]
        return self % 2 == 1
    }
}





// MARK: - [extension 정의 실시 : String]
extension String {
    
    
    func equals (_string : String) -> Bool {
        
        /*
        // -----------------------------------------
        [equals 설명]
        // -----------------------------------------
        1. 두 문자열이 같은지 확인 실시
        // -----------------------------------------
        2. 호출 방법 : str_one.equals(_string: str_two)
        // -----------------------------------------
        3. 리턴 데이터 : 두 문자열이 같을 경우 true / 아닌 경우 false
        // -----------------------------------------
        */
        
        // 인풋으로 들어온 파라미터 데이터와 타입이 일치하는 경우
        if(self == _string){
            return true
        }
        else {
            return false
        }
    }
    
    
    
    func charAt (_index : Int) -> Character {
        
        /*
        // -----------------------------------------
        [charAt 설명]
        // -----------------------------------------
        1. 문자열 중 특정 번지 문자 확인 실시
        // -----------------------------------------
        2. 호출 방법 : str_one.charAt(_index: 0)
        // -----------------------------------------
        3. 리턴 데이터 :
           - 해당 번지에 맞는 문자 반환 실시
           - let data = "hello투케이" >> data.charAt(_index: 0) >> h
        // -----------------------------------------
        */
        
        let charIndex = self.index(self.startIndex, offsetBy: _index)
        return self[charIndex]
    }
    
    
    
    func subString (_start : Int, _end : Int) -> String {
        
        /*
        // -----------------------------------------
        [subString 설명]
        // -----------------------------------------
        1. 문자열 중 부분 문자열 출력 실시
        // -----------------------------------------
        2. 호출 방법 : str_one.subString(_start : 0, _end : 4)
        // -----------------------------------------
        3. 리턴 데이터 :
           - 시작 ~ 종료까지 부분 문자열 리턴
           - let data = "hello투케이" >> data.subString(_start: 0, _end: 4) >> hello
        // -----------------------------------------
        */
        
        let startIndex = self.index(self.startIndex, offsetBy: _start)
        let endIndex = self.index(self.startIndex, offsetBy: _end)
        
        // [시작 ~ 종료까지 부분 문자열 리턴]
        return String(self[startIndex...endIndex])
    }
    

    
    func trim () -> String {
        
        /*
        // -----------------------------------------
        [trim 설명]
        // -----------------------------------------
        1. 문자열에서 양쪽 끝 공백 제거 실시
        // -----------------------------------------
        2. 호출 방법 : str_one.trim()
        // -----------------------------------------
        3. 리턴 데이터 : 문자열에서 양쪽 끝 공백 제거 된 문자열 리턴
        // -----------------------------------------
        */
        
        // [시작, 끝 양쪽 공백 제거 실시]
        return self.trimmingCharacters(in: .whitespacesAndNewlines)
    }
    
    
    
    func replaceAll (_string : String, _replace : String) -> String { // 문자열 변경 실시
        
        /*
        // -----------------------------------------
        [replaceAll 설명]
        // -----------------------------------------
        1. 문자열에서 지정한 문자로 모두 변경을 수행합니다
        // -----------------------------------------
        2. 호출 방법 : str_one.replaceAll(_string: "a", _replace: "A")
        // -----------------------------------------
        3. 리턴 데이터 : 문자열에서 지정한 문자로 모두 변경을 수행합니다
        // -----------------------------------------
        */
        
        // [특정 문자로 변경 후 리턴 실시]
        return self.replacingOccurrences(of: _string, with: _replace)
    }
}





// MARK: - [extension 정의 실시 : UIColor]
extension UIColor {
    
    
    convenience init(rgb: Int) {
        
        /*
        // -----------------------------------------
        [UIColor.init 설명]
        // -----------------------------------------
        1. 지정한 헥사 값으로 색상을 표현합니다
        // -----------------------------------------
        2. 호출 방법 : UIColor.init(rgb: 0x00ff00).withAlphaComponent(1.0)
        // -----------------------------------------
        */
        
        self.init(
            red: (rgb >> 16) & 0xFF,
            green: (rgb >> 8) & 0xFF,
            blue: rgb & 0xFF
        )
    }
    convenience init(red: Int, green: Int, blue: Int) {
        assert(red >= 0 && red <= 255, "Invalid red component")
        assert(green >= 0 && green <= 255, "Invalid green component")
        assert(blue >= 0 && blue <= 255, "Invalid blue component")
        self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: 1.0)
    }
}





// MARK: [extension 정의 실시 : Date]
extension Date {
    
    
}

 

반응형
Comments