问题标签 [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.
iphone - 如何从详细视图中删除核心数据条目?
我正在使用类似于苹果的核心数据配方示例代码的应用程序。我希望能够从详细视图中删除条目,就像苹果的联系人应用程序一样。
下面的代码是删除第一个条目而不是选定的条目。不知道我做错了什么。
iphone - 从 NSManagedObject 引用磁盘上的文件
命名与 NSManagedObject 关联的文件的最佳方法是什么。NSManagedObject 将保存此文件的 URL。
但我需要为我的文件创建一个唯一的文件名。是否有某种我可以使用的自动增量 ID?我应该使用 mktemp(但它不是临时文件)还是尝试将 NSManagedObjectId 转换为文件名?但我担心会有特殊字符可能会导致问题。
你有什么建议?
编辑:我有很多这样的 NSManagedObjects 并且每个都有自己的图像,所以我想为每张图片生成一个唯一的名称。
objective-c - 神秘键值编码键
我正在尝试从未记录的 API (OsiriX) 加载数据。
像这样获取 NSManagedObject:
NSManagedObject *itemStudy = [[BrowserController databaseOutline] itemAtRow: [[BrowserController databaseOutline] selectedRow]];
工作得很好。
但是像这样获得 NSManagedObject:
seriesArray = [_context executeFetchRequest:request error:&error];
NSManagedObject *itemSeries = [seriesArray objectAtIndex:0];
当我调用时产生错误[itemSeries valueForKey:@"type"]
2010-05-27 11:04:48.178 rcOsirix[27712:7b03] Exception: [<NSManagedObject 0xd30fd0> valueForUndefinedKey:]: the entity Series is not key value coding-compliant for the key "type".
这让我彻底困惑。如果我打印 itemSeries 的 KVC 值,我会得到这个列表:
itemStudy 的 KVC 是这样的:
如果我使用代码:
但是,itemStudy
如果我应该在应该调用的时候调用它,则不会引发错误[itemStudy valueForKey:@"type"]
,因为没有 KVC for @"type"
!!!
当然,对象是不同的,但它们都不包含密钥@"type"
,它们都应该抛出错误,但是 Osirix 代码测试了这两种情况:
并且不会引发任何错误。然而,当我加载NSManagedObject
相同的模型和实体@"Series"
时,它会在传递到上述条件时抛出“无键值”。
我错过了什么吗?itemSeriessuperentity
和subentities
itemStudy 的 and 都是nil
这样,它们不会从具有 KVC 的东西继承@"type"
。
我完全无法解释发生了什么。
- - 编辑 - -
我知道没有人能解释发生了什么……但也许从哪里开始寻找?itemStudy 怎么会有额外的 KVC @"type" 没有出现在它的属性列表中?
谢谢您的帮助,
-斯蒂芬
- - 编辑 - -
好的,所以在深入研究之后,我认为这是我对 CoreData 的误解。
API 包括类DicomSeries
,DicomStudy
它们是 NSManagedObject 的子类,并包含在 xcdatamodel 文件中。
我将 xcdatamodel 文件作为“编译源”以及 DicomSeries.h 和 DicomStudy.h
DicomSeries
并且DicomStudy
是“硬编码”的:
但是我创建的对象itemStudy
从不调用这个方法。像itemStudy
上面那样创建的对象,做。甚至DicomSeries
在主程序中调用的对象也可以。但不是我使用来自同一数据库的 fetch 请求。
即使我这样做:
@"Series"
如果请求具有属于 Class的实体,DicomSeries
因此它应该响应:
但事实并非如此。
我觉得我错过了一个巨大的 CoreData 差距。我NSManagedObjectModel
在我的持久商店协调器中使用的我和我的上下文有实体,Series
并且是managedObjectClassName
DicomSeries
这样的......
是的。
大声笑,哇?
c++ - 为什么 NSFetchRequest 的类错误?
我正在使用一个未记录的 API (Osirix),我对我在这里发布的那个有一个姐妹问题。
我在从托管对象上下文加载对象时遇到问题。
从 API 加载,使用它们的 _context 和 _model 实例
从 Fetch Request 加载(以及我自己的 _context 和 _model 实例)
输出由:
所以很明显,即使实体认为它是一个 DicomSeries - 它不是。它只是一个 NSManagedObject。DicomSeries 有一些“硬编码”的 KVC 内容,我在另一个问题中遇到了问题。
我在这个线程中追求不同的推理方式——加载对象。
以下是他们的代码:
这是我的代码:
我包括所有相同的框架....但_allBundles
甚至不用于创建,managedObjectModel
所以我不知道它应该做什么,除了将它们加载到内存中以便mom
在加载时可以查看它们。
完全迷失了。
帮助!
为什么我的 FetchRequest 返回的具有相同实体的对象会出现NSManagedObjects
而不是DicomStudy
s?我包括 DicomStudy.h,因此它应该在创建模型、上下文和获取请求期间看到对象。
提前致谢,
-斯蒂芬
objective-c - 给另一个对象一个 NSManagedObject
好的,所以我的代码遇到了问题。我所做的是 UIButton 的子类化,因此我可以给它一些与我的代码相关的更多信息。我已经能够创建按钮并且它们工作得很好。卡皮切。
但是,我希望我的子类拥有的一件事是对 NSMangedObject 的引用。我的头文件中有这段代码:
如您所见,它有一个我希望它保存的 NSMangedobject 的实例变量(以及 Context)。但就我的一生而言,我无法让它持有那个 NSManagedObject。我在实现文件中运行了两个@synthesize 方法。
所以我不确定我做错了什么。这就是我创建按钮的方式:
而且我之前已经初始化了玩家数组,在那里我得到了对象。另一个奇怪的事情是,当它到达代码中的这个位置时,应用程序崩溃(woot)并且控制台输出停止。它没有给我任何错误,并且根本没有通知应用程序已崩溃。它只是……停下来。所以我什至不知道导致代码崩溃的错误是什么,除了它与那里设置“播放器”变量的那条线有关。想法和想法?我喜欢你的智慧!
iphone - 如何在 XCode 调试器中调试 NSManagedObjects?
在 XCode 调试器中,如何获取实体(NSManaged 对象的子类)的值?我迷失在 NSObject 和 _cd_XXX 结构中。
iphone - NSPredicate 语法以排除给定的 NSManagedObject
我有一个核心数据存储,其中许多实体应该是其特定 NSEntityDescription 的唯一实例。我目前正在通过为给定描述创建一个新实体来做到这一点,然后是:
哪个有效,但感觉我应该能够做到这一点!= 使用 NSPredicate 而不是在迭代中,但我只是想不出正确的谓词语法来做到这一点。任何人都可以启发我吗?
iphone - 在我的应用程序中丢失 NSManaged 对象
我一直在做一个有趣的小 iPhone 应用程序。有一次,我从我的 Persistant 商店中获取了一堆玩家对象,然后将它们显示在屏幕上。我还可以选择添加新的播放器对象(它们只是自定义 UIButtons)和删除选定的播放器。
但是,我相信我遇到了一些内存管理问题,因为应用程序没有保存正在显示的“玩家”。
示例:我显示了 4 个玩家,我将它们全部选中,然后将它们全部删除。他们都消失了。但是如果我退出然后重新打开应用程序,它们都会再次出现。仿佛他们从未离开过。所以在我的代码中的某个地方,它们并没有“真正”被删除。
所以在这个片段中(在 viewdidLoad 方法中),我将玩家从持久存储中取出,然后删除我不想要的对象(那些 boolValue 为 NO 的对象),其余的被保留。这行得通,我很确定。我认为问题在于我在哪里移除了球员。这是该代码:
第二个代码片段的重要部分是我将 currentMultiPlayer 设置为 NO。NO NO NO NO NO,当视图加载时,他们不应该回来,永远不会。直到我这么说。代码中没有其他相关部分将其设置为 YES。这让我觉得……也许他们没有得救。也许这不会保存,也许这些对象不再被管理,因此它们不会被保存。 NSManaged 对象是否有生命周期(隐喻)?Players 数组与我在“viewDidLoad”方法中设置的相同,SelectedPlayers 保存被选中的玩家,引用 NSManagedObjects。它与从阵列中删除它们有关吗?我很困惑,一些见解将不胜感激!
cocoa - 如何将 NSManagedObject 从一个上下文复制或移动到另一个上下文?
我有一个我认为是相当标准的设置,一个从不保存的暂存器 MOC(包含从网上下载的一堆对象)和另一个永久的 MOC,它保留对象。当用户从 scratchMOC 中选择一个对象添加到她的库中时,我想要 1)从 scratchMOC 中删除该对象并插入到 PermanentMOC 中,或者 2)将该对象复制到 PermanentMOC 中。Core Data FAQ说我可以像这样复制一个对象:
(在这种情况下,context2 将是永久MOC。)但是,当我这样做时,复制的对象出错了;数据最初是未解决的。当它确实得到解决后,所有的值都为零;原始 managedObject 中的任何数据(属性或关系)都不会被实际复制或引用。因此,我看不出使用这个 objectWithID: 方法和使用 insertNewObjectForEntityForName: 将一个全新的对象插入到永久MOC 之间有什么区别。
我意识到我可以在permanentMOC 中创建一个新对象并从旧对象手动复制每个键值对,但我对这个解决方案不太满意。(我有许多不同的托管对象都有这个问题,所以我不想在继续开发时编写和更新所有这些对象的方法。)有更好的方法吗?
iphone - Iphone - managedobjectcontext 没有正确保存
知道为什么
在视图控制器中实现时(通过向下钻取表视图访问)将无法正确保存信息?我从一开始就传递moc(rootview移交给tableview,tableview递归地将它传递给自己,直到调用uiview),如果我弹出/推送tableview(不幸的是viewWillAppear中的reloadData没有想更新它)。
我应该传递 managedObject 并从中获取上下文吗?