2016-07-30 50 views
2

我正在使用CloudKit中的推送通知。以下是我斯威夫特3之前使用:來自UNNotificationSound的聲音名稱

notification.soundName = UILocalNotificationDefaultSoundName 

(通知是CKNotificationInfo

然而,這給了我一個警告:

'UILocalNotificationDefaultSoundName' was deprecated in iOS 10.0: Use UserNotifications Framework's +[UNNotificationSound defaultSound]

所以我加入了UserNotification框架,以我的Xcode項目,我將它導入到我的ViewController。那麼我想這:

notification.soundName = UNNotificationSound.default() 

然而,這給了我一個錯誤:

Cannot assign value of type 'UNNotificationSound' to type 'String?'

所以默認的聲音是UNNotificationSound,但我需要的聲音名稱。我怎樣才能從聲音中獲得聲音名稱?謝謝!

回答

1

使用新UserNotifications框架:

import UserNotifications 

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

let request = UNNotificationRequest(identifier: "id", content: content, trigger: nil) 
+0

這不是我正在尋找的東西...我不相信我需要'UNNotificationRequest'。另外,content.sound不幸的是只能得到。 – penatheboss

+2

.sound對於UNNotificationContent只能獲取,但如果使用UNMutableNotificationContent,則可以將其設置爲您要使用的聲音。 – gohnjanotis

2

可悲的是我認爲這裏的答案是,即使我們已經得到了很多偉大的東西與新UserNotifications框架,CloudKit和CKNotificationInfo特別是沒有得到爲它更新。

現在最好的選擇,就是使用UILocalNotificationDefaultSoundName已經正常返回,並使用"default"