所以我创建了一个聊天室,当有人发送消息时,他们还会在我的云套件数据库中添加订阅,但问题是不能有多个同名订阅,我希望他们能够设置多于一个的订阅。这是一些代码:
func setupCloudKitSubscription () {
let userDefaults = NSUserDefaults.standardUserDefaults()
if userDefaults.boolForKey("subscribed") == false {
let predicate = NSPredicate(format: "TRUEPREDICATE", argumentArray: nil)
let subscription = CKSubscription(recordType: "Extra1", predicate: predicate, options: CKSubscriptionOptions.FiresOnRecordCreation)
let notificationInfo = CKNotificationInfo()
notificationInfo.alertLocalizationKey = "New Sweet"
notificationInfo.shouldBadge = true
subscription.notificationInfo = notificationInfo
let publicData = CKContainer.defaultContainer().publicCloudDatabase
publicData.saveSubscription(subscription) { (subscription:CKSubscription?, error:NSError?) -> Void in
if error != nil {
print(error?.localizedDescription)
}else{
userDefaults.setBool(true, forKey: "subscribed")
userDefaults.synchronize()
你看它是如何写的 recordType: "Extra1"我怎样才能在每次有人订阅时使“Extra1”不同的文本?谢谢!
最佳答案
你的问题不完全清楚。我认为您想问的是您希望订阅在每个通知中向您发送不同的消息。
您可以将其设置为显示记录的一个或多个字段。为此,您应该使用如下内容:
notificationInfo.alertLocalizationKey = "Response: %1$@"
notificationInfo.alertLocalizationArgs = ["responseField"]
那么您的 Localization.Strings 文件中还需要它。
"Response: %1$@" = "Response: %1$@";
关于SWIFT:是否有人每次都使用不同的文本设置记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37233972/