问题标签 [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 投票
0 回答
313 浏览

ios - UIManagedDocument 和“此 NSPersistentStoreCoordinator 没有持久存储”错误

我正在尝试使用 UIManagedDocument 在我正在构建的应用程序中设置我的核心数据堆栈。我在 init 方法中有一个对象 DocumentController :

然后我有了这个名为 performWithDocument 的块方法,它使您可以访问块中的文档。块定义如下:

该方法如下所示:

无论如何,每当我尝试插入一个新实体时,我的应用程序在事后几秒钟(当它尝试保存时)崩溃并且我在标题中收到错误消息。当我认为 UIManagedDocument 为我处理了核心数据堆栈内容时,我不确定如何解决这个问题。有没有人有任何指针?

0 投票
1 回答
233 浏览

objective-c - UIManagedDocument 和其他内容

我有一个基于文档的应用程序(多个文档,每个文档都有自己的核心数据持久存储)。我正在使用UIManagedDocument它来开发它。

每个文档都是一个绘图,我希望能够保存UIImage每个绘图的预览 ( )。

因为我想显示一个带有所有预览的滚动视图,我想我不应该将预览放在数据库中,所以我正在使用此处UIManagedDocument描述的附加内容功能。

我有一些问题:

  • 参数“absoluteURL”有什么用 additionalContentForURL:error:?在我链接的示例中没有使用它。

  • 如何在不打开文档的情况下检索预览?目前我正在这样做:

.

...但我不确定这是否是最好的方法。

0 投票
2 回答
150 浏览

ios - Core Data 的线程错误

我正在开发一个与服务器通信并保存到核心数据的应用程序。

在 appDelegate 中,我启动了我的单例对象并调用 useDocument 来初始化 UIManagedDocument:

这是从服务器接收数据后的代码:

这是写入核心数据的代码:

问题是,每当核心数据尝试自动保存(等待大约 30 秒)时,应用程序就会崩溃并出现以下错误:

我尝试使用 GCD 在主线程中调用“useDocument”和“createUser”,还覆盖 UIDocument“contentsForType”以确保它在自动保存后立即发生,文档状态在保存之前是正常的,并且还创建了持久性存储文件。

  • 有没有人遇到过类似的情况?很感谢任何形式的帮助!!
0 投票
1 回答
443 浏览

ios - 通过 URLForUbiquityContainerIdentifier+Path 而不是 NSMetadataQuery 检查 UI(Managed)Document 是否已经在 iCloud 中?

我有一个非常简单的鞋盒式 iOS 应用程序,带有1个单一的核心数据数据库(作为UIManagedDocument),并考虑尝试添加iCloud支持。


我当然必须检查云中是否已经存在数据库*在启动时创建新的 UIManagedDocument *、保存/打开它等。

因为我已经知道文件名并且有 1 个文档或根本没有文档,所以我真的不知道是否必须这样做

  1. 使用确切文件名的谓词启动NSMetaDataQuery , 然后从结果中获取fileURL(并显式下载它?)如果有,则打开它,或者

  2. 只使用[[NSFileManager defaultManager] fileExistsAtPath:self.iCloudDBURL]iCloudDBURLURLForUbiquityContainerIdentifier + 附加创建?此 URL 是否只是一个本地 URL,并且不会自动检查“真实”云?


我知道使用 UIManagedDocument 可能不是这种应用程序的“正确”方式,但我认为它更容易,我可以尝试..

0 投票
2 回答
737 浏览

iphone - UIManagedDocument 和核心数据

我找到了这些斯坦福教程https://itunes.apple.com/us/course/ipad-iphone-app-development/id495052415,并且一直在听关于核心数据的讲座,这真的很棒。

它显示了如何通过UIManagedDocument...访问核心数据...唯一的事情我不明白UIManagedDocument它应该使用哪个模型,因为我没有看到它在任何地方设置?

总结一下,使用UIManagedDocument时如何定义要使用的数据库模型?

0 投票
0 回答
89 浏览

iphone - 核心数据文档状态为 UIDocumentStateSavingError 时如何恢复。

我正在使用一个文件作为我的核心数据的存储库。尝试打开它时,文档状态设置为整数 5 (UIDocumentStateSavingError & UIDocumentStateClosed) 失败。如何通过解决错误或强制文档按原样打开来恢复此类文档。

0 投票
1 回答
96 浏览

ios - 在 appdelegate 和视图控制器中访问的同一数据库之间的一致性

我最近一直在使用 Core Data 和 UIManagedDocument,并且有一些问题。

我有一个 UITableViewController,我在其中打开一个 UIManagedDocument。在这里,我将信息下载到 tableViewCotroller 并将信息保存到数据库并更新 tableview。现在,当我通过主页按钮进入主屏幕然后再次打开应用程序时,我想处理 appdelegate 中数据库中的数据。因此,在 appdelegate 中的适当方法中,我打开数据库,获取我想要的实体并更改我想要的对象的属性。现在,这行得通,我设法打开数据库并从数据库中获取我想要的对象。

当我完成从 appdelegate 中的数据库更改数据时,我的问题就出现了。因为在appdelegate方法完成后,我尝试从同一个数据库中重新获取tableview中的数据,但是此时数据库还没有注册在appdelegate中调用的方法中所做的更改。在 appdelegate 内部进行更改之后,我尝试调用 saveToURL 以覆盖 UIManagedDocument 上的方法,并且我还尝试了 managedobjectcontext 上的 save: 方法。保存更改以便更新数据库的正确方法是什么?

Ps:我是在iPad上写的,所以我没有设法上传代码,我稍后再上传。

谢谢

0 投票
0 回答
146 浏览

core-data - SaveToURL 中的 UIDocumentStateSavingError

我正在尝试保存 coredata 文件并进行一些更改(在本地,而不是通过 iCloud),但未调用“saveToURL”方法完成处理程序。使用调试器,我看到文件处于 UIDocumentStateSavingError 状态。我在文档中没有看到任何解释,这个错误是什么以及来自哪里。任何建议/最佳做法或线索?

谢谢

0 投票
2 回答
2589 浏览

ios - 防止在已经打开时调用 UIDocument openWithCompletionHandler

我有一个带有以下方法的单例类(DTTSingleton):

在我的 UITableViewController 中,viewDidLoad 方法中有以下代码:

执行时出现错误:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“尝试打开或恢复已经在运行中具有打开或恢复操作的文档

我明白为什么会出现此错误,这是因为我正在尝试打开文档,而另一个打开进程已经在运行。所以我的问题是...

1)如何确保 openWithCompletionHandler 只被调用一次?

2)如何确保文档打开后执行第二个块?

谢谢你的帮助!

0 投票
1 回答
742 浏览

core-data - iOS 5.1 openWithCompletionHandler not suceeding

I'm attempting to make my iOS6.0 app back compatible with 5.1. I've turned off the obvious things (e.g. autolayout) but am getting stuck at a strange stage.

My app takes data from an XML source and puts it in a core date structure. On iOS 6 this works perfectly. On iOS 5 it gets stuck here

If I look at self.datastorage it is what I would expect (a closed managed document) fileURL: file://localhost/ ..... /Library/Application%20Support/iPhone%20Simulator/5.1/Applications/E3E9192D-2DFE-4882-9041-00A1DF9E98D6/Documents/Default%20Database documentState: [Closed]

Edit: Actually works fine with iOS 5.0 or 6.0+. My problem is purely with iOS 5.1 run on the iPhone simulator. Could this just be a bug with the simulator? It will not open a closed UIManagedDocument nor create an non-existing file.

Here is the full code for completeness:

Thanks