2017-03-03 1 views
2

예를 들어 iOS 10에는 UserNotifications 프레임 워크가 있습니다. 그 전에는 그냥 사용해야합니다 : 신속하게 비추천 코드를 실행하면 어떻게됩니까?

let settings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil) 
application.registerUserNotificationSettings(settings) 
application.registerForRemoteNotifications() 

는 (나는 아이폰 OS (10)에 위의 코드를 실행하고 아무 일도하지 않음).

내 일반적인 질문 : 항상 더 이상 사용되지 않는 구문 충돌이 발생하거나 아무 것도하지 않거나 처리 방법이 알려지지 않았습니까?

보다 나은 디버깅을 위해 을 이해하고 있습니다.입니다.

+0

@pjs 사실 UILocalNotification을 사용하고 iOS 10과 연결된 코드는 작동하지 않습니다. – matt

+1

@pjs하지만 "컴파일러"와는 아무런 관련이 없습니다. – matt

답변

4

은 바로,

기본적으로 알 수 없습니다. 아마도 충돌하지 않을 것입니다.하지만 작동하지 않을 수도 있습니다.

UILocalNotification 세계의 경우 iOS 10에 링크하면 코드가 제대로 작동하지 않는다는 경험이 있음을 보여줍니다. 새 UNUserNotificationCenter 코드로 전환해야합니다.

그러나 이것은 규칙이 아니라 실험에 의해 결정됩니다.

신뢰할 수있는 일반적인 규칙은 현재 iOS 버전에 대해 더 이상 사용되지 않는 것이 있으면 사용하지 않는 것입니다. 그것은 정확하게 비추천이 의미하는 것입니다.

물론 코드가 iOS 10과 연결되지만 iOS 10과 iOS 9에서 실행되도록하려면 Swift의 if #available() 구문을 사용하여 두 가지 완전히 다른 코드 집합을 포함해야 할 수도 있습니다 우리가 실제로 실행중인 시스템에 이 특별한 경우에는 로컬 알림을 관리하기 위해이 작업을 수행해야합니다. 그러나 그것은 진보의 대가입니다. Apple (의도적으로?)은 하위 호환 코드를 작성하는 것을 어렵게 만듭니다.

+0

@Rob 죄송합니다. "완전히 다른 두 가지 코드 세트"에 내재되어 있다고 생각합니다. 나는 거기에 몰래 빠져 나올거야. – matt

1

더 이상 사용되지 않음을 의미합니다. Apple은 언제든지 제거 할 수 있습니다. 몇 년 동안은 효과가있을 수 있지만 언젠가는 추락 할 것이며 경고를받지 못했다고 말할 수는 없습니다. 새로운 코드를 작성한다면 왜 이미 쓸모없는 것부터 시작해야할까요? 이것이 기존 코드에있는 경우 기회가있을 때 새로운 API로 업데이트하는 것이 좋습니다.

사용 중단 경고는 정확하게이 작업을 수행 할 수있는 도구입니다. 그것을 처리하는 방법을

관련 문제