Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SwiftUI中实现与NSPersistentCloudKitContainer的共享_Swift_Core Data_Swiftui_Cloudkit - Fatal编程技术网

在SwiftUI中实现与NSPersistentCloudKitContainer的共享

在SwiftUI中实现与NSPersistentCloudKitContainer的共享,swift,core-data,swiftui,cloudkit,Swift,Core Data,Swiftui,Cloudkit,可能吗 我用核心数据和Cloudkit安装了一个新的iOS 14应用程序。我不得不对我的Persistence.swift文件进行一些更改,以使其正常工作,但它工作得很顺利 我对实现共享很感兴趣,但很多文档已经过时,令人困惑,似乎在某个时候不可能实现,但现在可以了 我想第一步是让我的数据库共享?我正在将以下行添加到我的Persistence.swift文件中 container.persistentStoreDescriptions.first!.cloudKitContainerOptions

可能吗

我用核心数据和Cloudkit安装了一个新的iOS 14应用程序。我不得不对我的
Persistence.swift
文件进行一些更改,以使其正常工作,但它工作得很顺利

我对实现共享很感兴趣,但很多文档已经过时,令人困惑,似乎在某个时候不可能实现,但现在可以了

我想第一步是让我的数据库共享?我正在将以下行添加到我的
Persistence.swift
文件中

container.persistentStoreDescriptions.first!.cloudKitContainerOptions?.databaseScope = .shared
(事情是这样的):

但是当我运行应用程序时,我得到了以下错误

Thread 1: "CKDatabaseScopeShared is not supported with NSPersistentCloudKitContainer"
这并不令人鼓舞,但也许可以实现与公共数据库作用域的共享


我真的不确定接下来的步骤是什么?实现我自己的同步到cloudkit并允许共享的NSPersistentContainer?

我相信答案是否定的(我是MasonAndMuse),但其中有一位苹果工程师说是,但不愿详细说明。我很快就停止了尝试,没有找到任何办法来解决系统目前的不透明性。我没有看到任何迹象表明其他人已经开始工作,但在8个月前放弃后,我没有仔细观察。当然可能有办法——我希望被证明是错的


我想他们在iOS 15中引入了共享,但现在这并没有多大帮助。。。太糟糕了,因为它现在离我们太近了,如果/当他们把它加进去的话,会节省很多时间……

我相信答案是否定的(我是MasonAndMuse),但是那里有一位苹果工程师说是,但不愿详细说明。我很快就停止了尝试,没有找到任何办法来解决系统目前的不透明性。我没有看到任何迹象表明其他人已经开始工作,但在8个月前放弃后,我没有仔细观察。当然可能有办法——我希望被证明是错的

我想他们在iOS 15中引入了共享,但现在这并没有多大帮助。。。太糟糕了,因为它现在离我们太近了,如果/当他们把它添加进来时,它会节省很多时间。

苹果工程师在论坛上对我说得很清楚:

  • NSPersistantCloudKitContainer不支持共享
  • 你需要实施
我还没有实现这样的功能,但我会这样做:

  • 让NSPersistantCloudKitContainer实现正常工作
  • 在同一容器上实现CloudKit共享
  • 开始将特定记录从NSPersistantCloudKitContainer传递到步骤2中实现的共享功能中
  • 要使用CKDatabase.Scope=shared访问共享Cloudkit数据库,请执行以下操作:

    如果这是NSPersistentCloudKit容器
:

    container = NSPersistentCloudKitContainer(name: "AppName")

    
    我会像这样尝试访问这个容器的共享数据库
:

    let myAppsCloudKitContainer = CKContainer(identifier: "iCloud.com.name.AppName")
    let myContainersSharedDatabase = myAppsCloudKitContainer.database(with: .shared)
    
    要从NSPersistantCloudKitContainer访问数据以用于CloudKit共享功能,请使用NSPersistantCloudKitContainer实例方法

    record(for managedObjectID: NSManagedObjectID)
    
    论坛上的苹果工程师对我说得很清楚:

    • NSPersistantCloudKitContainer不支持共享
    • 你需要实施
    我还没有实现这样的功能,但我会这样做:

  • 让NSPersistantCloudKitContainer实现正常工作
  • 在同一容器上实现CloudKit共享
  • 开始将特定记录从NSPersistantCloudKitContainer传递到步骤2中实现的共享功能中
  • 要使用CKDatabase.Scope=shared访问共享Cloudkit数据库,请执行以下操作:

    如果这是NSPersistentCloudKit容器
:

    container = NSPersistentCloudKitContainer(name: "AppName")

    
    我会像这样尝试访问这个容器的共享数据库
:

    let myAppsCloudKitContainer = CKContainer(identifier: "iCloud.com.name.AppName")
    let myContainersSharedDatabase = myAppsCloudKitContainer.database(with: .shared)
    
    要从NSPersistantCloudKitContainer访问数据以用于CloudKit共享功能,请使用NSPersistantCloudKitContainer实例方法

    record(for managedObjectID: NSManagedObjectID)
    

    我第一次听说AppGroup,你可以通过分享@loremipsum有趣的内容,但我会进一步调查。如果您愿意,请随时详细说明完整的答案。我稍后会发布一些代码(我现在不在Mac电脑上)试图让CoreData与小部件和其他用户设备一起工作时遇到的问题。这并不完美,因为我无法在编辑CoreData对象时更新小部件,但小部件选择会同时更新。是否要与同一设备(即小部件)中的扩展共享数据库?或者您想与其他人共享您的对象吗?@EmilioPelaez哦,是的,我想与其他人共享,即:您可以通过共享@loremipsum有趣的内容,这是我第一次听说AppGroup,但我会进一步调查。如果您愿意,请随时详细说明完整的答案。我稍后会发布一些代码(我现在不在Mac电脑上)试图让CoreData与小部件和其他用户设备一起工作时遇到的问题。这并不完美,因为我无法在编辑CoreData对象时更新小部件,但小部件选择会同时更新。是否要与同一设备(即小部件)中的扩展共享数据库?或者你想与其他人共享你的对象?@EmilioPelaez哦,是的,我想实现与其他人的共享,即:哦,是的,我自己发现了这个线程,苹果员工对此开玩笑,这有点令人震惊!我会继续挖掘,并用任何发现更新此页面。哦,是的,我自己发现了这条线索,苹果员工对此开玩笑,这有点令人震惊!我会继续挖掘,并在这一页上更新任何发现。