问题标签 [uimanageddocument]

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 回答
667 浏览

ios - iCloud 应用上的 CoreData Stack 与 UIManagedDocument

我正在尝试为我的 CoreData 应用程序选择支持 iCloud 的最佳方法。

我认为一个好的策略应该是创建一个 SingleTon 类来处理所有 CoreData 和 iCloud 的东西,并将一个 ManagedObjectContext 传递给应用程序。

此类应处理用户更改其 iCloud 帐户或 iCloud 被禁用的情况。为此,我需要使用多个 NSPesistentStore,一个用于 iCloud,一个用于 iCloud 不可用的情况,并在需要时迁移数据。正确的?

我的主要问题是,使用 UIManagedDocument 类或传统的 CoreData 堆栈来创建一个处理应用程序的 CoreData/iCloud 基本逻辑的单例类的优缺点是什么?

来自 WWDC 2012 的代码示例也可以与 CoreData 普通堆栈的 UIManagedDocument 一起使用吗?

0 投票
2 回答
844 浏览

ios5 - 删除 UIManagedDocument 的正确方法

我的应用程序中有一个功能,用户可以通过单击按钮重置应用程序上的所有内容。此时,我没有尝试删除所有 Core Data 关系(Cascade Delete)和其他复杂情况,而是决定使用这段代码实际删除整个 UIManagedDocument

这应该删除我假设的文档?但它有时会引发错误。奇怪的是,当我下次尝试重新创建文档时,我收到一条错误消息,提示“无法创建文件,文件已存在”。我用来创建文档的代码是这样的:-

我的问题是:- 删除/删除整个 UIManagedDocument 并在下次成功登录时重新开始的最佳/正确方法是什么?

提前致谢。

0 投票
1 回答
461 浏览

ios - 用 NSFileManager 替换 CoreData persistantStore 是否安全?

我有一个与我的应用程序完美配合的 CoreData 数据库。数据库存储用户保存的预设。我想让用户能够通过 iTunes 使用文件共享来备份数据库。

基本上我想:

  1. 备份:数据库 -> 用户可以在设备之间传输的文件

  2. 恢复:文件 -> 数据库

我想到的最直接的方法就是简单地复制和替换persistentStore。像这样。。

这就是我创建数据库的方式:

}

这就是我替换persistentStore的方式:

}

我有它的工作,但是,我不确定它是否是一个安全和首选的解决方案(核心数据的新手)。有输入吗?

0 投票
1 回答
1276 浏览

objective-c - UIManagedDocument 上的 saveToURL 上的核心数据失败

我正在尝试设置核心数据,但是当我在其上运行saveToURL时,UIManagedDocument它无法创建它。这是我的代码;

isUserLoggedIn首先被调用,但是当它被创建时,我得到日志“创建失败” - 我不明白,因为没有错误。有什么方法可以获取错误信息吗?有谁知道为什么它不起作用?

0 投票
1 回答
1858 浏览

objective-c - 使用 UIManagedDocument 创建的核心数据

我不确定 coreData 的结构以及对象如何保存在目录中。所以我所知道的是,您创建了一个 UIManagedDocument 实例并为其创建了一个 URL 以及它将保存文件的位置。然后你调用“SaveToURL”,当你调用它时究竟创建了什么?它是核心数据堆栈吗?那么当您将信息保存到您声明的实体中时,是否会在堆栈中为实体中的每组信息创建一个单独的文件?最后,究竟什么是 UIManagedDocument 的上下文。

这是三个主要问题

  1. 调用“SaveToURL”时会创建什么,它是文档还是文件还是堆栈?
  2. 当您在实体中保存信息时,是否在此文件/堆栈中创建了单独的文件?
  3. 什么是 UIManagedDocument 上下文?
0 投票
1 回答
168 浏览

ios - 可以使用 NSFileManager 处理从 UIManagedDocument 创建的核心数据数据库吗?

我正在制作一个使用Core Data的应用程序,为了我的应用程序的目的,我需要将一个预填充的数据库与应用程序包捆绑在一起。

我正在使用一个UIManagedDocument

为此,我使用应用程序创建了数据库,然后加载了数据。然后我在我的 Mac 中搜索 iOS Simulator 文件夹并将文件拖放persistentStore到应用程序包中。

稍后在代码中我将其复制到 ,NSDocumentDirectory因为将允许用户在运行时编辑数据库。这是通过以下方法完成的:

一切正常!但是,我不确定这是否会产生某种类型的错误。所以我的问题是,可以使用 NSFileManager 处理从 UIManagedDocument 创建的核心数据数据库吗?

而且,苹果会在审查过程中抱怨捆绑persistentStore文件吗?

0 投票
1 回答
1524 浏览

ios - 应用更新后的大麻烦。CoreData 迁移错误

今天早上,我们的 iPhone 应用程序遇到了大麻烦。我们甚至不得不把它从商店里拿出来。

问题是我们对 xcdatamodel 进行了真正的小改动。我们认为更新过程会自动注意以正确的方式交换它,直到我们发现存在类似 CoreData 迁移的东西。

我们正在使用 UIManagedDocument 连接到持久存储。

怎么可能用新文件交换这个文件?在开发过程中,我们只是从设备上卸载了整个应用程序,然后再次安装它,一切正常。我们如何在应用商店中通过更新模拟这个过程?

更新

我尝试像这样设置迁移选项

但该应用程序仍然崩溃

** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“此 NSPersistentStoreCoordinator 没有持久存储。它无法执行保存操作。


0 投票
2 回答
944 浏览

ios - UIManagedDocument OpenWithCompletionHandler 永远不会返回

我遇到了一个奇怪的问题。我确信我在代码中的其他地方对文件做了一些事情并且它没有正确关闭或其他什么,但现在它处于报告为已关闭的状态,但是当我调用 OpenWithCompletionHandler 它永远不会返回。见下文:

有任何想法吗?

0 投票
1 回答
856 浏览

sqlite - 预加载由 UIManagedDocument 创建的 sqlite 数据库,在 iphone 模拟器中运行 Ok,拒绝在 iphone 设备中工作

我已经解决这个问题一周了,我用谷歌搜索了堆栈溢出,阅读了大约 40 篇文章,仍然无法解决我的问题。这是我所做的: 1.我编写了一个测试应用程序来创建 sqlite 数据库,并用数据预加载它。2.我创建了myApp,并将预加载的数据库复制到资源文件夹。3.我写了以下代码来获取数据库:

然后当我在模拟器中运行 myApp 时,myApp 成功获取了数据库数据,而当我在我的 iPhone 中运行它时,myApp 无法获取数据库数据。我不知道SDK版本是否重要,因为模拟器是iphone 5.1,而我的iPhone是5.0(越狱)。而且我没有在我的应用程序中使用任何 5.1 特定功能。

有人说您应该先将数据库复制到文档目录才能使其正常工作,我已经尝试了该解决方案,在模拟器中仍然可以正常工作,但在 iPhone 中没有数据。另外,我使用 iTool 查看了 iphone 文件夹,myDB 文件夹已经在文档目录中。帖子建议解决方案在这里:Pre-load core data database in iOS 5 with UIManagedDocument

其他人说我应该直接使用persistentStoreCoordinator。但我认为 UIManagedDocument 可以在我的情况下工作,因为它本身创建了一个隐式的 persistentStoreCoordinator。

关于 myApp 有什么问题的任何建议?

任何人都可以告诉我为什么 ios 用两层文件夹包装 sqlite DB,并命名实际的 sqlite db persisentStore?

0 投票
2 回答
461 浏览

iphone - 将 managedObjectContext 注入初始 viewController?

UIManagedDocument在我的 AppDelegate 中NSManagedObjectContext设置了一个核心数据模型(

viewDidLoad我可以使用 [在 vi​​ewControllers 中直接访问它[[UIApplication sharedApplication] delegate] sampleDatabase] managedObjectContext],然后使用prepareForSegue.

我只是想知道是否有一个初始 segue(或机制)允许我将 managedObjectContext 传递(或注入)到该初始 viewController 中,而无需在控制器内部使用 appDelegates 共享实例访问它?