问题标签 [nspersistentstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
355 浏览

ios - 在多个 NSPersistentStoreCoordinator-s 之间传递 NSManagedObjectID-s 是否安全?

我有多个 NSPersistentStoreCoordinator 实例,每个实例只有一个 NSPersistentStore,都指向同一个 sqlite 文件。在我的测试中,在它们之间传递 NSManagedObjectID 对象,然后调用

- (NSManagedObject *)existingObjectWithID:(NSManagedObjectID *)objectID error:(NSError **)error

关于 NSManagedObjectContext 似乎工作正常,但我还没有遇到来自苹果的任何文档,证实这应该工作正常。

所以,我的问题是,如果有人知道这是否应该工作(一些苹果文档的链接确认它会很棒!),是否有人知道这通常不应该工作,我不应该这样做这,那也太棒了!

0 投票
1 回答
481 浏览

core-data - UImanagedDocument 的 persistentStore iCloud 备份

我正在尝试为核心数据 UIManagedDocument 创建备份,并将它们存储在 iCloud 中。自从我尝试这样做以来已经超过 2 个月了,我不明白该怎么做。互联网上根本没有任何信息......我试图至少创建本地备份,但它也不起作用这是代码:

调用替换时它会记录错误:

0 投票
3 回答
102 浏览

ios - CoreData 和 iCloud;如何跟踪上次保存到云端的设备?

我有一个由 iCloud 支持的 CoreData 应用程序(使用https://github.com/lhunath/UbiquityStoreManager)。在一个用例中,具有本地存储的用户启用 iCloud(其中数据已经存在)。我想提示用户决定是将本地数据迁移到 iCloud 还是只使用 iCloud 版本。作为其中的一部分,我想在 iCloud 中显示版本的设备名称和上次同步日期。

我一直在修改我的 NSPersistentStore 的元数据,但这似乎没有同步到 iCloud。

有什么建议么?

0 投票
1 回答
794 浏览

core-data - 核心数据更改本地存储观察者/通知

有没有办法为 Core Data 更改本地存储时日志显示的通知添加观察者?

[PFUbiquitySwitchboardEntryMetadata setUseLocalStorage:](754): CoreData: Ubiquity: mobile~E358C294-F23E-4FBA-8DA6-869A3A848906:R63H5582LG~com~Test~Tester Using local storage: 0

我之所以问,是因为我想知道核心数据已更改为哪个本地存储。非常感谢!

0 投票
1 回答
80 浏览

core-data - 一个应用程序中的两个 Coredata 持久存储

我目前正在开发的应用程序有一个只读核心数据库,里面充满了问题(供孩子们回答),我希望可以通过应用程序更新自由地快速替换(理想情况下只需替换 sqlite 后端数据库)用户的文档文件夹(如果它与应用程序包中的版本不同)。

我还存储了用户创建的数据,当我替换问题数据库时我不想丢失这些数据。

在同一个应用程序中拥有两个持久性存储和数据模型是否可行(并且是良好做法),一个我可以替换,另一个通过更新保持,呃,持久性?

0 投票
1 回答
61 浏览

ios - 重新定位 NSPersistentStore

我想从我的 iOS 应用程序的 CoreData 存储中移动文件

../Library/Application Support/MyApp/

../Documents/Stores/

我可以使用 来执行此操作NSFileManager,还是需要使用将商店从旧位置合并到新位置(新位置还没有数据)。

0 投票
2 回答
1959 浏览

objective-c - CoreData,单独线程上的子 MOC,意外:错误:NULL _cd_rawData 但对象没有变成故障

好的,我对此有点迷失,我目前正在尝试使用第二个 ManagedObjectContext 运行后台核心数据操作,其类型设置为 NSPrivateQueueConcurrencyType 并因上述错误而惨遭失败。

我有一个 NSOperation 的自定义子类,它被传递一个字符串的 NSArray 和来自主线程的 PersistentStoreCoordinator,然后它创建自己的 ManagedObjectContext,运行查询并执行和操作。

这是该课程的代码:

@结尾

这就是我所说的:

编辑 1

我似乎遇到错误的特定行,或者至少 Xcode 中断的地方是:

我设法缩小了一点,包含要搜索字符串的术语列表的 NSArray 可能非常大,可能超过 1,000 个 NSString。如果我用那个大小的数组进行测试,我就会遇到问题。但是,如果我将数组减少到大约 15 个 NSString,我不会收到错误,所以我认为这不一定是线程相关的问题,我想知道数组是否在主线程中被释放。我已修改代码以进行深层复制,然后按如下方式进行 __block 复制,但似乎没有帮助。

事实上,在 Xcode 中断的地方,如果我 PO 数组,我得到一个找不到对象的消息,但如果我 PO 结果,我正确地得到一个返回的对象,它是 nil。

编辑 2

所以我做了以下改变,没有改变:

使 NSArray 强大而不是复制:

并在分配时将其复制:

并在处理对象的实际方法中使用 ___block 声明创建了 NSArray 的本地副本:

这肯定意味着它会在 ProcessProfanity 对象的生命周期内一直存在?

我期望能够从块内的断点 PO 数组是错误的吗?

0 投票
2 回答
998 浏览

ios - Is there a way to retrieve an NSPersistentStore knowing its URL?

Is there a way to retrieve an NSPersistentStore knowing its URL?

Something like:

** Obviously the method 'persistentStoreFromURL' doesn't exist!

Extra infos:

I know this store is loaded in some Coordinator (I don't know which one) and I have to remove it from its coordinator before migrating its data to another store. I only know the URL for this store.

I am using several coordinators at the same time. I want to avoid to loop through them and then loop again through all theirs stores to check if the store.URL is equal to url. This is the reason I am asking if it is possible to get the store directly from its url and then get its coordinator wihout all the looping.

0 投票
3 回答
993 浏览

ios - 从 iCloud 中删除核心数据失败

我正在尝试使用[NSPersistentStoreCoordinator removeUbiquitousContentAndPersistentStoreAtURL:options:error:]. 但我得到奇怪的输出:

这是什么意思?

如何避免?我正在研究 iCloud 禁用/启用功能。详情在这里

更新:

0 投票
2 回答
426 浏览

core-data - 核心数据 NSPersistentStore 问题

我正在开发一个分阶段推出的应用程序。对于每个 sprint,都会发生数据库更改,因此已经实施了核心数据迁移。到目前为止,我们已经发布了 3 个阶段的版本。每当完成连续的渐变时,应用程序运行良好。但每当我尝试从版本 1 升级到版本 3 时,就会出现“无法添加持久存储”错误。有人可以帮我解决这个问题吗?