问题标签 [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.
ios - 一个类的不同对象的两个持久存储
我的应用程序是另一个待办事项管理器。它有类 Todolist,可以是本地(私有列表)或共享列表。所有与私有列表相关的数据都存储在本地(Core Data + SQLite 存储)。与共享列表相关的数据必须在本地和远程存储(以便所有共享列表成员都能够将他们的事务添加到列表中)。远程持久存储由 Parse Cloud 通过PFIncrementalStore
. 所以我的目标是将本地存储的共享列表待办事项与远程存储的待办事项同步。
这是核心数据编程指南的引用:
一个协调器只能与一个托管对象模型相关联。如果要将不同的实体放入不同的存储中,则必须通过在托管对象模型中定义配置来划分模型实体
这是否意味着我应该为共享列表创建单独的数据模型配置并且它是待办事项?或者简单地使用 NSManagedObjectContext- 的方法重新分配对象(void)assignObject:(id)object toPersistentStore:(NSPersistentStore *)store
就足够了?
我如何看待解决方案:当我处理共享列表时,我将其分配给PFIncrementalStore
另一方面(处理私有列表),我将其分配给标准本地存储(NSSQLiteStoreType)。
我做对了吗?任何建议表示赞赏。谢谢你。
ios - 将现有核心数据迁移到 iCloud
我有一个简单的应用程序,它由用户在不同的视图中UITableView
填写一些内容来填充。UITextFields
此信息将保存到CoreData
并UITableView
使用 更新NSFetchedResultsController
。
我现在将 iCloud 同步引入我的环境。参考之前提出的问题:Existing Core Data Database Not Uploading to iCloud When Enabling iCloud On My App,我仍然遇到问题,但是用我的新代码更新这个问题太麻烦了。我专门指的是WWDC 2013 CoreData
Sessions 以及this。因为我的应用程序只有 iOS 7。我对 iCloud 开发相当陌生,并且是一名中级程序员。
当我从 App Store(非 iCloud)版本更新到开发(iCloud)版本时,我很难将现有数据迁移到 iCloud。新数据完美同步。
我知道我基本上需要在没有 iCloud 的情况下使用我现有的商店并将其迁移到 iCloud,但这对我来说并不奏效。
这里有一些代码来说明我正在做什么:
更新
我已经通过并考虑了这一点,并删除了多余的代码。
我不再调用 migrateLocalStoreToiCloud 方法,但它在这里供参考:
*/
、storeURL
和代码storeOptions
是:iCloudURL
iCloudStoreOptions
问题
当我完全按原样运行此代码时,尽管数据在那里,但我根本不会在控制台中显示 UsingLocal Storage : 1
和。0
如果我更改persistentStoreCoordinator
它首先添加persistentStore 以[self iCloudStoreOptions]
用作选项的位置,Using Local Storage 1
然后0
显示,但数据不在设备上。
我遵循此处的指导,并尝试了多种代码变体,包括不删除 reloadStore 方法中的任何 persistentStore,但我完全被卡住了。
我已经阅读了很多帖子,但似乎我找不到将数据从非 iCloud 版本迁移到 iCloud 版本的人,并且我找到了示例,没有代码。
我对此进行了研究,虽然它是一个很棒的代码集,但我已经下载了代码并遵循了那些不会删除任何 persistentStore 但它仍然对我不起作用的准则。我无法想象我想要实现的目标非常复杂。我只需要获取现有的非 iCloud 数据并将其迁移到 iCloud。
更新
通过阅读 Apple 的指南:https ://developer.apple.com/LIBRARY/ios/documentation/DataManagement/Conceptual/UsingCoreDataWithiCloudPG/UsingSQLiteStoragewithiCloud/UsingSQLiteStoragewithiCloud.html#//apple_ref/doc/uid/TP40013491-CH3-SW2我可以看到我的migrateLocaltoiCloud
方法目前在删除persistentStore
等方面是错误的,但我不知道如何修复它。如果我从 中调用它persistentStoreCoordinator
,它会以某种方式干扰DidChangeNotification
吗?
我真的坚持这一点,我将不胜感激任何正确方向的指导
ios - 随附默认数据时遵守 iOS 数据存储指南 (2.23)
我做了一些研究并了解了基本问题。我的问题是关于策略的。
背景:我提交了一个应用程序,旨在帮助足球教练管理他们的阵容。它被拒绝的原因是 2.23:在发布时,它会为位置和编队创建默认的核心数据实体。它还创建了一个示例团队,供新用户作为教程逐步完成。这些实体都存储在应用程序文档目录中的持久存储中,该目录会自动备份到 iCloud。他们说这是 4MB 的数据——我只能重新创建 60kB,这听起来是对的——无论哪种方式,Apple 都不希望默认数据进入 iCloud,因此被拒绝。
问题:修复方法是使用NSURLIsExcludedFromBackupKey
. 这让我有两个选择:
-- 简单的选择:首次启动时,只需将NSURLIsExcludedFromBackupKey
应用程序的文档目录设置为 YES。然后,在用户输入任何自己的数据后,将其设置为 NO,并NSUserDefault
在后续启动时使用 an 来维护该设置。这将让我将所有内容保存在一个持久存储中,尽管此时会备份默认数据......我猜这在技术上仍然违反规则。但在如此少量的默认数据下,苹果会抓住它吗?还是在乎?
-- 艰难的选择:使用两种持久性存储,一种用于从备份中排除的默认数据,另一种用于用户输入的非备份数据,并实现获取的属性以合并数据以供应用程序运行。可能是“正确”的答案,但这听起来很痛苦,我真的想避免学习如何做到这一点并重新设计我的数据模型和我所有的获取。
因此,在我再赌一周的复习时间之前,有没有想过这种简单的方法是否有效?还是有其他想法?
core-data - NSPersistentStoreCoordinator 的 removeUbiquitousContentAndPersistentStoreAtURL 方法不返回任何值并阻塞执行线程
当 removeUbiquitousContentAndPersistentStoreAtURL:options:error 根本没有返回任何值时,是否有人遇到过这种情况?我愿意。在我的例子中,这个方法只是阻塞了它正在执行的线程。这种奇怪行为的原因是什么?
ios - Core Data - 检测数据库存储是否已经创建
我正在使用 Core Data,我需要检测数据库存储是否已经创建。
我尝试使用metadataForPersistentStoreOfType:URL:error:
并检查它是否返回有效的元数据,但显然如果不存在元数据但此方法返回 nil 并且错误。
所以我真的不知道是因为商店还没有创建,还是因为错误一致
问题是,我已经在应用商店有一个版本,所以我不能例如在当前版本的用户默认设置一个标志(如“store_created”)......
所以我需要一种方法来检测用户何时安装这个当前版本,如果商店已经创建(意味着他已经安装了以前的版本),或者没有
ios - 在 iOS 上替换 Sqlite 文件 - 核心数据错误 14
我有一个带有预加载数据的 Sqlite 文件。我正在使用 Core Data 从 Sqlite 文件中读取和显示数据。
这是我读取数据的方式:
但是,我需要使用我在应用程序之外使用 sqlite 数据编辑器执行的新数据来更新 Sqlite 文件。
现在,当我复制粘贴并覆盖“myAppname.sqlite”文件时,出现以下错误:
我确实尝试添加NSDictionary *options = @{ NSSQLitePragmasOption : @{@"journal_mode" : @"DELETE"}
,但仍然存在相同的错误。
还有一些答案建议删除对文件的引用并创建一个新文件,但我不知道该怎么做。
任何想法?
编辑
我设法让它工作。
在 iOS 6 模拟器上打开原始应用程序。
用新文件替换 Sqlite 文件并仅运行 App iOS 6 模拟器,而不是在 iOS7 模拟器上运行。没有任何问题。
但是仍然想知道其他评论。
ios - 在迁移时从 iCloud 迁移到本地商店崩溃的应用程序“对象不能为零” - 使用 Core Data
我有一个仅限 iOS 7 的应用程序,它使用 Core Data 进行存储,我带来了 iCloud,并切换到该应用程序。
iCloud 集成的各个方面都在工作,除了如果用户从应用程序内关闭 iCloud,则从 iCloud 商店迁移到本地商店。
通过使用Exception Breakpoint
,应用程序崩溃:
这在“ migratePersistentStore
”代码处崩溃。
这是执行该操作的代码:
问题
该应用程序将在上面的行中崩溃,并出现上述错误migratePersistentStore
。我不知道该怎么做才能使它正常工作。
currentStore 的注释掉代码表明我也尝试检查 lastObject,而不是 firstObject,并且在这两种情况下,我都得到了相同的结果。
我没有从本地到 iCloud 发生任何崩溃,因为我想确保,如果用户正在使用 iCloud 但随后选择不使用,他们的数据应该在本地迁移。
这个(Migrate Persistant Store Crash)堆栈溢出问题似乎是一个完美的选择,但首先答案不被接受,并且没有确认代码可以从提出问题的人那里得到,而且该代码也不起作用为了我; 它只是删除了数据。
对此的任何指导将不胜感激。
ios - 为什么我不能再在 developer.icloud.com 上删除我的应用程序的所有 iCloud 数据?
iOS 8、Yosemite Beta 和 Mavericks 几个月来,我一直在定期从我的应用程序中删除 iCloud 数据。使用:
这不再删除 iCloud 中的数据,如 developer.iCloud.com 所示
当该方法即将执行时,我会:
并且已经过了几个小时,数据不会消失。
这是 developer.icloud.com 上的视图
我错过了什么?谢谢。马克
ios - CoreData PersistentStorage 创建文件失败
我在使用 CoreData 的 iOS 8.1 上遇到问题。在我的设备上,当代码在每个模拟器上运行良好时,我总是会收到此错误:
我已经尝试从我的设备中删除该应用程序。我成功地尝试手动创建一个文本文件。这是导致错误的代码片段:
编辑:
感谢您的回答 jrturton。解决方案是
objective-c - 尝试在测试中添加 NSPersistentStore (SQLite) 时出错
我正在尝试向 Core Data 应用程序添加一些测试。该应用程序实际上运行良好,当我尝试创建堆栈时,测试失败得很惨。
尝试向以下类型添加类型时NSPersistentStore
出现SQLite
错误NSPersistentStoreCoordinator
:
这是错误:
错误中提到的 URL 是通过以下方式获取的(下面的 dbURL 属性):
这只发生在测试中。该应用程序运行良好。有任何想法吗?