草庐IT

nsmanagedobject

全部标签

iphone - 如何在类之间传输 NSManagedObject 子类?

我们创建了一个存储库层用于与CoreData交互,它具有诸如allItems()、addItem:(Item*)item等方法,其中item是NSManagedObject子类.当我们需要保存一个项目时,我们调用存储库上的方法,将子类实例作为参数传递。但是,这不起作用,因为我们不能使用init初始化程序,并且上下文隐藏在存储库中。当您拥有这样的架构时,传输对象的最佳方式是什么?使ItemDTO成为绕过选项的传递吗?或者是否有更好的方法来解决这个问题,例如根本不使用子类NSManagedObject而只使用有效的键/值。 最佳答案 我

ios - 序列化包含对核心数据中 NSManagedObjects 的引用的多维数组

我有两个实体,Chain和Step。Chain有一个属性steps,可以是Step实体的多维数组,例如:[step,step,step,[step,step],step]每个Step对象都有一个content属性,它是一个字符串。如果我使用的是关系数据库,我会将该数组存储为JSON,每个step都是特定步骤的step_id。我如何在CoreData中实现类似的东西?我想我需要使Step类符合NSCoding协议(protocol),但那会是什么样子呢?我如何让它在Chain.steps的最终值中只存储与其id等效的内容,即对自身的引用?编辑下面的评论表明我在Step和其他Step之间包

ios - 更新核心数据模型实体和支持的 NSManagedobject 子类

假设我有一个具有3个属性的模型实体。然后,我为此实体生成NSManagedobject子类,并向此类添加自定义方法和属性。稍后我向该实体添加了几个新属性。目标我希望受支持的NSManagedobject子类反射(reflect)这些新属性。问题我看到的唯一解决方案是在Xcode中{Editor->CreateNSManagedobjectSubclass},但这种方式会覆盖类。问题有没有一种方法可以在不覆盖类的情况下更新实体和支持的NSManagedobject子类。 最佳答案 手动编辑托管对象子类就可以了。假设您向实体添加了一个新

iphone - 核心数据 - 在多个线程之间共享 NSManagedObjects

我遭受了在多个线程中使用单个MOC的所有后果-我的应用程序在随机点崩溃,因为MOC是在主线程中创建的,我还使用它来填充另一个线程中的DB。尽管代码是使用全局单例同步(@synchronize)的,但应用程序崩溃了。我读到过为每个线程使用单独的MOC可以解决问题,但我也读到过跨线程共享NSManagedObjects也被认为是一种不好的方法。我的用例如下:1)我从服务器加载和解析XML,在解析过程中我将每个新的NSManagedObject插入到数据库中。这一切都发生在一个单独的线程中。2)用户从主线程与从数据库读取数据的UI进行交互。在两个线程中我都使用NSManagedObjects

ios - 从后台恢复后访问核心数据 NSManagedObject 会使应用程序崩溃

我正在使用核心数据,发现应用有时会在从后台恢复后崩溃。当我尝试访问NSManagedObject上的属性时,我已经确定了block方法体内发生的崩溃。子类。我有一个属性包含对NSManagedObject的引用子类。@property(nonatomic,strong)CalItem*calObject;为了重现崩溃,我首先需要调用子viewController(NoteViewController)传递一个block(NoteTextBlock)。NoteViewController*noteViewController=[[NoteViewControlleralloc]initW

ios - 使用 NSManagedObject 子类来传输持久性和非持久性数据

我正在考虑如何使用一些核心数据的NSManagedObject子类来处理持久数据和非持久数据。假设您有一个食谱应用程序,它显示您自己来自CoreData的食谱列表,并且在同一个应用程序中,您还可以搜索其他用户的食谱。这些其他用户的食谱当然来自API,我们不想将它们保存到核心数据中。但我们想要的是我们的配方细节ViewController,无论是给定持久配方还是非持久配方,它都表现得一样。我自然地认为我们应该在我们的数据周围使用相同的对象包装器,让我们的ViewController对数据的来源视而不见。问题是NSManagedObject的子类不能手动初始化,必须插入到上下文中。这对我们

ios - NSManagedObject 能否符合 NSCoding

我需要跨设备传输单个对象。现在我正在将我的NSManagedObject转换为字典,将其存档并作为NSData发送。收到后,我正在取消存档。但我真的很想通过归档和取消归档而不是创建中间数据对象来传输NSManagedObject本身。@interfaceTest:NSManagedObject@property(nonatomic,retain)NSString*title;@end@implementationTest@dynamictitle;-(id)initWithCoder:(NSCoder*)coder{self=[superinit];if(self){self.titl

ios - 通过objectID获取NSManagedObjects数组将返回空数组

我正在尝试执行提取操作,以使用从不同上下文中收集的对象ID数组从上下文中检索托管对象。但是,获取返回的是一个空数组。在“核心数据编程指南”的“检索特定对象”部分中link:Ifyourapplicationusesmultiplecontextsandyouwanttotestwhetheranobjecthasbeendeletedfromapersistentstore,youcancreateafetchrequestwithapredicateoftheformself==%@.Theobjectyoupassinasthevariablecanbeeitheramanaged

ios - 对 NSManagedObject 的属性引用是否不安全?

在书中LearningCoreDataforiOS,作者创建了几个UIViewControllers,每个都有一个引用NSManagedObjectID的属性。例如,@interfaceLocationAtShopViewController:UIViewController@property(strong,nonatomic)NSManagedObjectID*selectedObjectID;//...otherpropertiesandmethods@end以这种方式,他能够将NSManagedObjectID从一个Controller传递到另一个Controller,并使用NS

ios - NSManagedObject 版本 : "objc_msgSend() selector name: _queueForDealloc" 崩溃

许多用户通过HockeyApp使用以下堆栈跟踪报告了一个奇怪的崩溃。它似乎与NSManagedObject在不同的调度队列中被释放有关......但我没有得到任何可能出现问题的符号。这似乎是一个内存管理问题,但我使用的是ARC,所以不确定它会如何过度释放NSManagedObject。这是我得到的崩溃报告(主线程在不同时间显示不同的痕迹):CodeType:ARM-64ParentProcess:launchd[1]Date/Time:2014-05-12T05:43:54ZOSVersion:iPhoneOS7.0.6(11B651)ReportVersion:104Exceptio