我可能漏掉了一些显而易见的东西。
如何创建一个CloudKit通知,详细说明正在通知您的CKRecord?(也就是说,不仅仅是一个通用的“新建项目!”)但是一份带有唱片标题的通知,比如,“吉尔和杰西卡的生日派对!”)
对于每一个新的记录更改,创建一个新的notification.alertBody来创建一个新的订阅是正确的方法吗?这没有任何意义。
这使得queryNotification.recordID选项可以从CloudKit (或我的本地商店)中提取数据,并以某种方式将其添加到通知中?添加或更改已通知通知的值的方法是什么?我遗漏了什么?
更新:按照Edwin的建议,这里有一个代码片段,但它不起作用。
let notification = CKNotificationInfo()
notification.alertBody = "Added: %@" as NSString
notification.alertLocalizationArgs = ["name"]发布于 2014-12-09 14:35:31
只需填充CKNotificationInfo对象的CKNotificationInfo
.alertLocalizationArgs的文档显示:
使用此属性是可选的。此属性包含一个NSString对象数组,每个对象对应于触发推送通知的记录字段。这些名称用于从记录中检索相应的值。然后,这些值用于替换alertBody或alertLocalizationKey字符串中的任何替换变量。值本身必须是NSString、NSNumber或NSDate对象。不要用其他值指定键。当添加到推送通知时,长度大于100个字符的字符串值可能会被截断。 如果对替换变量使用%@,则将这些变量替换为按顺序遍历数组。如果使用形式%n$@的变量(其中n是整数),则n表示要使用的数组中项的索引(从1开始)。因此,数组中的第一个项替换变量%1$@,第二个项替换变量%2$@,依此类推。您可以使用索引替换变量来更改结果字符串中项的顺序,这在本地化应用程序的消息时可能是必要的。
以下是我如何使用它的两个示例:
notificationInfo.alertBody = "%1$@ : %2$@"
notificationInfo.alertLocalizationArgs = ["FromName", "Text"]第二个样本是:
notificationInfo.alertLocalizationKey = "News: %1$@"
notificationInfo.alertLocalizationArgs = ["Subject"]其中,"News:%1$@“作为Localizable.strings文件中的键
更新:看起来您现在需要使用.alertLocalizationKey。所以第一个样本不再有效了。
https://stackoverflow.com/questions/27371588
复制相似问题