问题标签 [nsmanagedobject]

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

iphone - 在用户点击按钮之前禁用给定 NSManagedObject 的持久性?

我有一个 NSManagedObject ,其中包含用户可以使用视图编辑的属性。视图中填充了来自对象的值,用户可以编辑这些值,然后将这些值写回对象。我希望用户明确点击保存或取消按钮来提交或撤消更改。

问题是视图位于其他事情正在发生的 UITabbarController 中。用户可能会在另一个选项卡中执行操作,其中可能会调用 [NSManagedObjectContext save] 或 [NSManagedObjectContext undo]。在用户决定是否要保存或取消它之前,这将影响 NSManagedObject(来自第一个提到的选项卡) 。

有没有解决的办法?我们可以在用户点击按钮之前暂时禁用 NSManagedObject 的持久性吗?

0 投票
3 回答
5113 浏览

iphone - NSUndoManager undo 不使用核心数据

我正在尝试创建一个 iPhone 应用程序,用户可以在其中添加条目。当他按下一个新条目时,会弹出一个框询问他一些信息。然后他可以按“取消”或“保存”来丢弃数据或将其保存到磁盘。

为了节省,我使用了 Core Data 框架,它工作得很好。但是,我无法让“取消”按钮工作。当弹出窗口询问信息时,我在托管对象上下文 (MOC) 中创建一个新对象。然后当用户按下取消时,我尝试使用属于 MOC 的 NSUndoManager。

我也想使用嵌套的撤消组来做到这一点,因为可能有嵌套组。

为了测试这一点,我编写了一个简单的应用程序。该应用程序只是启用了 Core Data 的“基于窗口的应用程序”模板。对于核心数据模型,我创建了一个名为“Entity”的实体,其整数属性为“x”。然后在 applicationDidFinishLaunching 中,我添加以下代码:

这个想法很简单。尝试插入一个新的 Entity 对象,撤消它,获取 MOC 中的所有 Entity 对象并将它们打印出来。如果一切正常,最后应该没有对象。

但是,我得到这个输出:

如您所见,在我尝试撤消其创建后,该对象存在于 MOC 中。关于我做错了什么的任何建议?

0 投票
2 回答
1205 浏览

objective-c - CoreData 和 NSXMLParser

嗨 Stackoverflow 的朋友们,

从 NSURLConnection 获取数据后,我正在使用 NSXMLParser 解析网络的 XML 文件。XML 有许多“项目”,每个项目包含 1 个类别。在 CoreData 模块中,我有一个与一个类别有关系的 Item 实体。

在解析 XML 文件并使用“Item”元素点击消息 parser:didStartElement:... 时,我为 Item 创建了一个 NSEntityDescription。然后解析器在消息解析器中再次到达类别项目:didStartElement:...,我为类别创建一个 NSEntityDescription。

XML:

所以发生的情况是,当 CurrentItem 没有完成创建时,首先为 currentCategory 调用 context save: 调用。

0 投票
1 回答
2572 浏览

iphone - 核心数据:从详细视图编辑对象

我刚开始使用 Core Data,我在主从视图系统中设置了一个 iPhone Core Data 项目。主视图包含项目,而详细视图允许您编辑所选项目的属性。

我正在寻找最佳选项以实施编辑。我是否会将 NSManagedObjectContext 传递给详细视图控制器以进行修改和保存更改,或者这是否可行?是否有任何示例代码演示如何执行此操作?

0 投票
1 回答
318 浏览

iphone - 核心数据自动更新查询

我有一个关于核心数据的问题,以及实体如何(如果有的话)自动更新。

基本上,假设我获取了一些数据 X。X 与 Y 具有一对多的反比关系。然后调用 get 方法来更新 X 中的属性。是否必须再次获取数据?还是 X 会自动获取更新的数据?

如果这是不可能的,那很好。前几天看到一个帖子,很好奇。我不记得细节,但我认为它谈到了如何让 NSManagedObjects 自动更新/刷新他们的数据,并且很好奇这是真的,或者你必须设置的设置,或者只是不可能。

我实际上正在重新获取数据以更新表格。这对我来说很好,但我只是好奇我读到的是真的还是我误解了这篇文章。

谢谢。

0 投票
1 回答
237 浏览

iphone - iPhones SDK:使用核心数据设置关系属性对象?

我在我的应用程序中使用核心数据。我有两个相关的实体:EntityA 和 EntityB。EntityA 与 EntityB 具有“关系”类型的属性。此外,这两个实体都是定义的类(不是默认的 NSManagedObject)。我将一个新对象插入到我的数据中,如下所示:

问题是 entityB.name 为空。即使我在分配值后立即添加 NSLog() 语句,它也是空的。当 EntityB 是 EntityA 的属性时,设置 EntityB 的“名称”属性的正确方法是什么?

0 投票
3 回答
3064 浏览

iphone - 如何检索对 NSManagedObject 子类的存储引用?

我有一个名为 Tour 的 NSManagedObject 子类。我使用以下代码存储了对它的引用:

现在我想找回它。我尝试使用:

但它给了我这个警告“不兼容的Objective-c类型。初始化'struct NSManagedObject *',预期'struct Tour *'

另外,执行时,它给了我这个:由于未捕获的异常'NSObjectInaccessibleException'而终止应用程序,原因:'CoreData无法满足'0x5001eb0的错误

我该如何解决这个问题?

0 投票
1 回答
1348 浏览

iphone - Core Data NSPredicate 过滤结果

我有一个包含 bID 和 pID 的 NSManagedObject。在 NSManagedObjects 集合中,我只希望返回一个子集,并且我正在努力寻找正确的 NSPredicate 或从 Core Data 中获取所需内容的方法。

这是我的完整清单:

出价 PID
41 0
42 41
43 0
44 0
47 41
48 0
49 0
50 43

上面有父子关系。

规则:

如果记录的 PID = 0,则表示该记录是父记录。如果记录的 PID != 0,则该记录的 PID 指的是它的父记录的 BID。

例子:

1) BID = 41 是父记录。为什么?因为记录 BID=42 和记录 BID=47 的 PID 为 41,这意味着它们是其 PID 记录的子项。
2) BID = 42 有一个 BID = 41
的父记录。 3) BID = 43 是一个父记录。
4) BID = 44 是父记录。
5) BID = 47 有一个 BID = 41 的父记录,因为它的 PID = 41。参见上面的#1。
6) BID = 48 是父记录。
7) BID = 49 是父记录。
8) BID = 50 是子记录,其父记录的 BID = 43。

看到图案了吗?

现在,基本上,我只想获取以下行:

出价 PID
44 0
47 41
48 0
49 0
50 43

BID = 41、BID = 48、BID = 49 都应该返回,因为没有 PID 等于它们的 BID 的记录。

应该返回 BID = 47,因为它是 PID = 41 的最新子代。
应该返回 BID = 50,因为它是 PID = 43 的最新子代。

希望这有助于更多地解释它。

0 投票
3 回答
24100 浏览

iphone - 如何跟踪/观察子图中的所有变化?

我有一个 NSManagedObjectContext,其中有许多 NSManagedObjects 的子类,其中一些是其他的容器。我想做的是观察一个顶级对象,以了解对其任何属性、关联或它包含的任何对象的属性/关联的任何更改。

使用上下文的“hasChanges”并没有给我足够的粒度。对象 'isUpdated' 方法仅适用于给定对象(而不适用于其关联中的任何内容)。是否有一个方便的(也许是基于 KVO 的)我可以观察到仅限于子图的上下文中的变化?

0 投票
2 回答
882 浏览

iphone - 如何检查对 NSManagedObject 的引用是否存在?

我使用本网站http://cocoawithlove.com/2008/08/safely-fetching-nsmanagedobject-by-uri.html中的示例成功存储和检索了对 NSManagedObject 的引用

问题是,应用程序在尝试检索已删除的 NSManagedObject 时崩溃。

我在对象上尝试了 isFault 方法,但它总是返回 no,即使对象存在。

这是我用来检索它的代码: