我正在尝试向实体类添加额外的属性和方法,我想将它们与自动生成的NSManagedObject子类分离。CoreData自动生成的类定义文件非常有用,我喜欢能够更改数据方案并快速重新生成它们,而不用担心会破坏我的扩展,因此子类化感觉是正确的整体方法。但是当我这样做时(例如,Person的子类称为MyPerson)—这似乎起作用了,但是在使用期望的MagicalRecord等工具时会导致混淆匹配类名的实体名。(即[PersonfindAll]有效,但[MyPersonfindAll]失败,因为它找不到名为MyPerson的实体。)感觉我的头撞墙太多了;在这里追求的正确设计模式是什么?感谢您
我有一个字典对象数组friendsArray,看起来像这样:({name="jamesp";phone=345345345;},{name="samb";phone=345345345;},{name="aarons";phone=346346456;})现在我像这样将它存储到coredataNSMutableDictionary*friends=[[NSMutableDictionaryalloc]init];for(intcount=0;count这是SQL浏览器的截图它正在存储数据但复制了这个字典,我不知道为什么。 最佳答案
我们使用下面的NSPredicate从CoreData中获取实体:[NSPredicatepredicateWithFormat:@"nameMATCHES[cd]%@",[NSStringstringWithFormat:@"^%@.*|.*[-\\s.@]%@.*",userInputtedKey,userInputtedKey]];例如,如果userInputtedKey仅包含字母和数字,则一切顺利。但是,如果userInputtedKey本身包含正则表达式的保留符号,那么,匹配将失败甚至崩溃。例如userInputtedKey为@"("会导致崩溃:***Terminatinga
我在核心数据中有实体employee_detailname|rate|factor|_______|______|________|John|3.2|4|Betty|5.5|7|Betty|2.1|2|Betty|3.1|2|Edward|4.5|5|John|2.3|4|我想要基于属性名称的唯一对象O/P应该是name|rate|factor|_______|______|________|John|3.2|4|Betty|5.5|7|Edward|4.5|5| 最佳答案 NSFetchRequest*fetchRequest=[
如果我的应用程序将我的对象保存到CoreData,我是否可以期望如果我关闭应用程序并从设备中提取sqlite文件,我可以立即在sqlite浏览器中看到我的对象?我在将对象保存到核心数据时遇到了一些问题,但如果我关闭应用程序并提取sqlite文件,我就看不到我刚刚创建的对象。谢谢 最佳答案 自iOS7发布以来,CoreData的默认配置使用多个文件:核心持久存储文件和两个日志文件。如果您的持久存储被命名为Foo.sqlite,则日志文件将为Foo.sqlite-wal和Foo.sqlite-shm。CoreData自动创建它们。在正常
我有一个关于CoreData的问题,我有这个.xcdatamodeld文件,它有2个实体,RCHTask和RCHTaskTypeRCHTask与RCHTaskType具有多对一关系RCHTaskType与RCHTask具有一对多关系我正在尝试获取具有特定任务类型的RCHTask实例但是我失败了我试过这个:-(NSArray*)returnTaskOfType:(NSString*)type{NSFetchRequest*request=[[NSFetchRequestalloc]init];NSEntityDescription*e=[NSEntityDescriptionentity
我想跟踪特定托管对象的数量。与NSFetchedResultsController的方式相同,只是我不需要返回任何数据,我只需要一个数字。最有效的方法是什么?作为旁注,显然我不想以最直接的方式使用NSFetchedResultsController,因为它会无缘无故地产生一堆错误和阻塞内存。我试图通过结合NSCountResultType和NSFetchedResultsController来实现这一点,但是在合并上下文时我遇到了一些奇怪的崩溃:NSError*error;autodefaultContext=[NSManagedObjectContextMR_defaultConte
我正在使用WatchConnectivity尝试将名为arrayOfOjects的NSManagedObject类型的数据发送到Watch。每个object都有一个名为title的字符串属性。Watch上的InterfaceController加载并显示空表-因为数组是空的,所以当用户请求数据时,它会使用didReceiveMessage发送电话上的方法。我不确定如何将字典数组添加到objectsArray以显示在WKInterfaceTable中。有谁知道我如何将数据发送到watch以显示在表格中以进行更改并将它们同步回手机?苹果watch:classObjectsInterface
至少自iOS9以来,核心数据操作唯一未弃用的线程并发类型(不在主线程中运行)是NSPrivateQueueConcurrencyType。我现在的问题是,我想为此更改线程优先级,如下所示:...:(int)neededPriority{_queue=dispatch_queue_create("Worker",DISPATCH_QUEUE_SERIAL);dispatch_set_target_queue(_queue,dispatch_get_global_queue(neededPriority,0));有时我需要高优先级,有时低。但是当我调用[_privateContextper
我目前正在为iOS应用程序设计架构,并且有一个关于使用coreData存储值的问题。理论我希望在coreData中存储与特定项目相关的值以及他们在使用某些功能时设置的特定用户信息。更新中当我发布更新时,应用程序将在每个实体内用新值更新旧值。我将在代码初始化之前使用一些版本检查来阻止每次加载时发生这种情况。问题当应用更新时,它会删除用户存储的所有值还是仅删除更新代码中引用的实体? 最佳答案 首先,CoreData有版本管理。只需添加新版本:其次,版本更新后,除非您删除该属性,否则CoreData不会删除存储的值。