Название звука из UNNotificationSound

Я работаю с push-уведомлениями в CloudKit. Вот что я использовал до Swift 3:

notification.soundName = UILocalNotificationDefaultSoundName

(уведомление CKNotificationInfo)

Однако это дает мне предупреждение:

«UILocalNotificationDefaultSoundName» устарело в iOS 10.0: используйте +[UNNotificationSound defaultSound] в UserNotifications Framework.

Поэтому я добавил инфраструктуру UserNotification в свой проект Xcode и импортировал ее в свой ViewController. Затем я попробовал это:

notification.soundName = UNNotificationSound.default()

Однако это дает мне ошибку:

Не удается присвоить значение типа «UNNotificationSound» типу «String?»

Итак, звук по умолчанию — UNNotificationSound, но мне нужно название звука. Как я могу получить название звука из звука? Спасибо!


person Pranav Wadhwa    schedule 30.07.2016    source источник


Ответы (2)


Используйте новую структуру UserNotifications:

import UserNotifications

let content = UNMutableNotificationContent()
content.sound = UNNotificationSound.default()

let request = UNNotificationRequest(identifier: "id", content: content, trigger: nil)
person Fujia    schedule 30.07.2016
comment
Это не совсем то, что я искал... Не думаю, что мне нужен UNNotificationRequest. Кроме того, content.sound, к сожалению, доступен только для чтения. - person Pranav Wadhwa; 30.07.2016
comment
.sound доступен только для UNNotificationContent, но если вы используете UNMutableNotificationContent, вы можете установить для него звук, который хотите использовать. - person gohnjanotis; 12.08.2016

К сожалению, я думаю, что ответ здесь заключается в том, что, несмотря на то, что мы получили много отличных вещей с новой структурой UserNotifications, CloudKit и CKNotificationInfo специально не обновлялись для нее. ????

Лучше всего на данный момент использовать то, что обычно возвращает UILocalNotificationDefaultSoundName, и использовать "default".

person Baza207    schedule 13.09.2016