在 CloudKit 中订阅公共数据库的最佳方式是什么?我有一个人的桌子。每个人都包含一个名字和一个位置。一旦位置发生变化,该位置就会在 CloudKit 中更新。那部分工作正常。
但是我无法在记录更新时获得通知。
一些例子会非常有帮助,因为我已经研究了可能的选项。我查看了在数据库中保存订阅的选项以及 CKModifySubscriptionsOperation 选项。
目前,我的订阅代码如下所示:
let predicate = NSPredicate(format: "TRUEPREDICATE")
let newSubscription = CKQuerySubscription(recordType: "Person", predicate: predicate, options: [.firesOnRecordCreation, .firesOnRecordDeletion, .firesOnRecordUpdate])
let info = CKSubscription.NotificationInfo()
info.shouldSendContentAvailable = true
newSubscription.notificationInfo = info
database.save(newSubscription, completionHandler: {
(subscription, error) in
if error != nil {
print("Error Creating Subscription")
print(error)
} else {
userSettings.set(true, forKey: "subscriptionSaved")
}
})
Run Code Online (Sandbox Code Playgroud)
有人也可以告诉我我的 AppDelegate 应该是什么样子吗?
我已将 didReceiveRemoteNotification 函数添加到我的 AppDelegate。我还调用了 application.registerForRemoteNotifications()。这就是我的 didReceiveRemoteNotification 函数的样子:我什至没有打印出来。
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: …
Run Code Online (Sandbox Code Playgroud) 我想在android中创建一个无限循环,以检查某些应用程序是否处于活动状态.不使用太多cpu的最佳方法是什么?
也许是一个while循环或处理程序或什么?
谢谢,
彼得
在我的Android Clean体系结构中真的需要使用UseCases吗?
在Android Jetpack 文档中,他们没有提及它。他们直接从ViewModels访问资源库。
这不是更好的选择吗?难道UseCase代码不仅使调整代码变得不必要地困难了吗?
android mvvm clean-architecture android-architecture-components android-jetpack