我目前正在学习核心数据。核心数据很棒,但我无法解释后台线程中第二个托管对象上下文的行为。我有一个名为TestEntity的实体,它具有2个属性(testId和testDescription)在主线程上,我使用testId=1获取实体并将此托管对象存储到实例变量中。NSEntityDescription*entityDescription=[NSEntityDescriptionentityForName:@"TestEntity"inManagedObjectContext:self.managedObjectContext];NSFetchRequest*request=[[[NSF
我有一个NSManagedObject,它与另一个NSManagedObject具有一对多关系。在创建NSManagedObject期间,我可以使用生成的访问器“removeNotesObject”并且删除工作正常。我可以创建一个对象添加到父对象,保存对象,删除对象然后再次保存。当我获取这个父对象时,我创建和删除的对象仍然被删除。但是,在我添加对象然后保存它(但不要删除并保存之后)然后获取它之后,我似乎无法删除之前创建的对象。我正在使用生成的访问器尝试删除该对象,这似乎有效,但当我再次获取它时,该对象并未被删除。(注意:添加对象确实有效,所以保存不是问题)要删除对象,我检索对象集并选择
我在CoreData和父子MOC上遇到了这个问题:当向子MOC添加对象、保存它们并保存父MOC时,所有对象的属性都会重置为默认值。我在这里粘贴了两个MOC的日志,具体是这些日志中重置的“stringAttribute”和“date”属性。我到处搜索这个问题,但没有找到任何东西,我也查看了很多父子MOC的实现,但我无法弄清楚我做错了什么。提前致谢!代码片段如下:我将一些NSManagedObject添加到主上下文中,然后使用saveContext:方法保存//Anothersingletonmethod-(void)anotherMethod{[...][self.managedObje
我有一些调用API并返回一组结果的代码,我们称它们为“消息”对象。每条消息都有一个唯一的ID。不幸的是,我不能保证服务器不会给我返回一条我以前没有收到并存储在我的核心数据数据库中的消息。唯一ID在我的“消息”实体中设置为NSNumber字段。有没有一种方法可以“即时”检查数据库,看看是否已经存在具有给定唯一ID的“消息”?目前,每次我需要检查时,我都会创建一个辅助对象的实例,并简单地创建一个NSFetchedResultsController,通过NSPredicate返回过滤后的结果。如果返回任何结果,我继续,或存储在数据库中。我怀疑这是一种缓慢的方法...有什么帮助吗?
我有一个文章与类别的多对多关系的核心数据。尝试保存时,出现以下错误。我无法找到有关它的含义以及为什么在数据库为空时有两个版本的信息。任何人都可以解释一下吗?错误:NSMergeConflict(0x76ae720)forNSManagedObject(0xd945560)withobjectID'0xd943550'witholdVersion=1andnewVersion=2代码:NSMutableDictionary*dict=[[dataobjectAtIndex:i]valueForKey:@"category_names"];NSMutableArray*values=[[N
我正在保存托管对象上下文,并使用以下方法进行保存:trainingDayObject=[NSEntityDescriptionentityForName:@"trainingDay"inManagedObjectContext:self.context];它有效,一切看起来都很好,但我收到警告:Incompatiblepointertypesassigningto'VitTrainingDay*'from'NSEntityDescription*'VitTrainingDay是核心数据实体TrainingDay的NSManagedObject子类。trainingDayObject是V
您好,我在ARC下遇到了一个严重的内存管理问题,不知道如何解决。问题是这样的,我有这些对象:ObjectManager-一个对核心数据执行fetchRequests并获取一个或多个NSManagedObjects的单例UIViewControllerA-一个ViewController,其中我有一个按钮“PassManagedObject”和一个声明如下的属性:@property(strong,nonatomic)ManagedObject*objectForToday;在UIViewControllerA上的viewDidLoad中,我调用方法refreshDailyObject执行
我无法理解如何最好地使用CoreData来解决这个问题,包括描述问题的正确术语。下面是问题的说明性示例(但不是我的实际对象)。假设您有一个音乐播放系统,其中艺术家有歌曲,并且系统中每次播放歌曲时都会记录时间戳。问题:如何找到播放过歌曲的艺术家数量?这里是示例NSManagedObject@interfaceMYArtist:NSManagedObject@property(nonatomic,retain)NSString*name;@property(nonatomic,retain)NSSet*songs;@end@interfaceMYSong:NSManagedObject@p
我的UITableViewCell的部分内容创建因一个对象(CoreDataNSManagedObject)初始访问时发生的故障而延迟。这表现为一个小问题,单元格首先滚动到View中。我决定将对这些对象的访问推送到后台线程。我就是这样实现的,效果很好,但是我们都知道我们不应该在另一个线程中访问一个线程(主线程)的NSManagedObjectContext,但是我们可以在一个线程中获取对象的objectID如果它最初是在第一个线程中获取的,第二个线程?获取objectID需要花费少量时间,我希望将其与其他所有内容一起插入后台。MyRecord*record=[self.frcobjec
我通过xcode编辑器菜单创建了一个NSManagedObject。我的对象只有一个属性“名称”。当我尝试设置属性时,我得到“[MyObjectsetName:]:unrecognizedselectorsenttoinstance”MyObject*thing=[MyObjectobjectFromJSONDictionary:obj];thing.name=obj;我已检查我的属性“名称”在CD中与在我的类(class)中相同。我的接口(interface)属性也是一样的。和我的动态属性是一样的。@property(nonatomic,retain)NSString*name;@d