
notificationCenter
//ViewController
class ViewController: UIViewController{
let notificationCenter = UNUserNotificationCenter.current()
	override func viewDidLoad() {
    	super.viewDidLoad()
        //호출.
		requestAuthorization()
    }
    //권한 허가 받을 옵션 채택
    func requestAuthorization(){
        let authorizationOptions = UNAuthorizationOptions(arrayLiteral: .badge, .sound, .alert)
        
        notificationCenter.requestAuthorization(options: authorizationOptions) { success, error in
            if success {
                self.sendNotification()
            }
        }
    }
    //노티 설정
    func sendNotification(){
        let notificationContent = UNMutableNotificationContent()
        notificationContent.sound = .default
        notificationContent.title = "noti title"
        notificationContent.subtitle = "noti subtitle"
        notificationContent.body = "noti body"
        notificationContent.badge = 1
        
        let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60, repeats: true)
        let request = UNNotificationRequest(identifier: "1", content: notificationContent, trigger: trigger)
        
        notificationCenter.add(request)
        
    }
}
//AppDelegate
//UNUserNotificationCenterDelegate 델리게이트 채택.
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate {
//Launch스크린 이후 도착한 노티 삭제.
	func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    	UNUserNotificationCenter.current().removeAllDeliveredNotifications()
        UNUserNotificationCenter.current().delegate = self
        return true
    }
//포그라운드 상태에서도 노티 받기.
    func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        completionHandler([.badge, .sound, .banner, .list])
    }
}//SceneDelegate
func sceneDidBecomeActive(_ scene: UIScene) {
//액티브됐을때 쌓인 뱃지 제거.
        UIApplication.shared.applicationIconBadgeNumber = 0
        
    }
sms 인증번호 받기
textfield.textContentType = .oneTimeCode폰트변경