启用了binary类型和"Allow External Storage“的核心数据模型属性会导致NSPersistentCloudKitContainer同步机制崩溃。
这只在接收设备上发生,这意味着上传到CloudKit成功,但从CloudKit下载会导致在NSManagedContext中崩溃。
<NSSQLSaveChangesRequestContext: 0x281ec8420> , *** NSAllocateMemoryPages(28317598) failed with userInfo of (null)
Terminating app due to
我不能将令人兴奋的核心数据堆栈更改为NSPersistentCloudKitContainer,因为这只是iOS 13及更高版本的支持特性,但希望将其设置为iOS 13及更高版本,同时为早期版本设置NSPersistentContainer。
我有相当多的经验与iOS和斯威夫特合作,但从来没有做过这样的事情,以版本控制和某些vars。
在使用iOS 13之前,这是我通常的一个:
lazy var persistentContainer: NSPersistentContainer = {
/*
The persistent container for the applicat
我正在将现有应用程序从NSPersistentContainer转换为NSPersistentCloudKitContainer AppDelegate代码:
lazy var persistentContainer: NSPersistentCloudKitContainer = {
let container = NSPersistentCloudKitContainer(name:"GridModel")
// enable history tracking and remote notifications
guard let pub
我目前正在制作一个应用程序,它需要通过iCloud跨设备同步它的CoreData存储。 一切都很好,除了它不是实时同步。(或者至少在某种程度上接近于此)。在Device1更改了一些东西后,当我在Device2上什么也不做时,它根本不同步。事实上,我必须最小化并重新打开Device2上的应用程序才能使同步正常工作。 这很好地演示了它:(source) ? 下面是我的代码片段: let container: NSPersistentCloudKitContainer
var context: NSManagedObjectContext { container.viewContext }
in
我只是在我的应用程序中添加了一个用户切换云同步的选项,在应用程序中,我保存用户是否希望在UserDefaults中使用UserDefaults中的useCloudSync同步。当应用程序运行时,我会加载persistentContainer:
class CoreDataManager {
static let sharedManager = CoreDataManager()
private init() {}
lazy var persistentContainer: NSPersistentContainer = {
var useCloudSy
我正在努力解决以下问题。尽管我进行了深入的搜索,但我还是没有成功。 我的开发环境是macOS Big Sur beta下的Xcode12.0beta(然而,这个问题在Catalina下的Xcode11.5上看起来是一样的)。我正在开发的应用是多平台的,既有macOS 10.16,也有iOS 13.5 target。该应用程序配置为使用NSPersistentCloudKitContainer的CoreData。 虽然registerForRemoteNotifications()在iOS目标中没有任何问题地成功,并且didRegisterForRemoteNotificationsWithD
大多数CloudKit+CoreData教程使用SwiftUI,它们的实现包括@FetchRequest,它自动检测CoreData获取中的更改并刷新UI。
如果没有SwiftUI,我将如何实现这一点?我希望能够控制如何刷新UI,以响应于检测到由于CoreData更新而发生的iCloud更改。
我使用它来设置NSPersistentCloudKitContainer并注册远程通知:
let storeDescription = NSPersistentStoreDescription()
storeDescription.setOption(true as NSNumber, for
我在我的iOS应用程序中使用数据库的NSPersistentCloudKitContainer。默认情况下,它似乎将所有事件记录到控制台,我假设是为了调试目的。这些消息如下所示:
CoreData: CloudKit: CoreData+CloudKit: -[PFCloudKitExportContext processAnalyzedHistoryInStore:inManagedObjectContext:error:]_block_invoke_4(201): Finished processing analyzed history with 1 metadata objects to
我用SwiftUI编写了一个SwiftUI应用程序(使用Xcode 12中的SwiftUI生命周期),它使用了SwiftUI容器的公共数据库,代码行如下:
let container = NSPersistentCloudKitContainer(name: "my_ios_container_name")
guard let description = container.persistentStoreDescriptions.first else {
print("Can't set description")
fa