Tag: 核心数据

核心数据嵌套托pipe对象上下文和频繁死锁/冻结

我有一个问题,这个人在这里描述的问题几乎相同,但它没有得到回答: http://www.cocoabuilder.com/archive/cocoa/312683-core-data-nested-managed-object-contexts-and-frequent-deadlocks.html#312683 这是问题: 我有一个使用NSPrivateQueueConcurrencyType和一个持久性存储协调器集的父MOC设置,它有一个带有NSMainQueueConcurrencyType的子MOC设置。 这个想法大部分是长时间的努力和保存,可以在私有MOC上完成,使主线程免于阻塞UI。 不幸的是,我似乎遇到了一些导致死锁的情况。 如果孩子MOC(在主线程上)正在使用NSFetchedResultsController执行一个提取操作,父上下文将被发送一个-executeFetchRequest:它可以创build一个死锁。 这两个操作都是在performBlock的上下文中完成的:对于它们各自的MOC,尽pipe文档似乎表明在主线程上使用主线程并发typesMOC而没有执行块:没问题。 看来专用队列正在等待主线程上的子上下文已经locking的PSC锁。 看起来,子上下文(同时持有PSC锁)正试图dispatch_sync到父上下文,因此它们都在等待对方。 是PriveQueue – > MainQueue支持的configuration? 似乎大多数人仍然在主线程上有父上下文。 主线程如下所示: > #0 0x960f6c5e in semaphore_wait_trap () > #1 0x04956bb5 in _dispatch_thread_semaphore_wait () > #2 0x04955c8f in _dispatch_barrier_sync_f_slow () > #3 0x04955dea in dispatch_barrier_sync_f () > #4 0x01797de5 in _perform () > #5 0x01798547 in -[NSManagedObjectContext(_NestedContextSupport) newValuesForObjectWithID:withContext:error:] () > #6 […]

+ entityForName:nil不是合法的NSManagedObjectContext参数search实体名称“帐户”

我已经尝试了很多选项,但是找不到解决这个问题的方法。 我创build了一个核心数据文件,并命名实体帐户,创build一个名为用户名的string属性。 然后编辑实体的类到NSManagedObject,不知道这是否正确。 现在,下面的代码在我的LoginViewController中: – (void)viewDidLoad { [super viewDidLoad]; ITAppDelegate *appDelegate = (ITAppDelegate *)[[UIApplication sharedApplication] delegate]; NSManagedObjectContext *context = appDelegate.managedObjectContext; Account *newAccount = [NSEntityDescription insertNewObjectForEntityForName:@"Account" inManagedObjectContext:context]; [newAccount setValue:@"Jorge" forKey:@"username"]; [newAccount setPassword:@"password"]; NSLog(@"username:%@ password: %@", [newAccount username], [newAccount password]); } 我遵循这个教程 ,我的代码文件如下所示: ITAppDelegate.h #import <UIKit/UIKit.h> @interface ITAppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @property […]

在核心数据中设置父子关系

我正在尝试在核心数据中build立关系。 我有一个树列表,每棵树都有一个水果列表。 所以我有一个Tree实体和一个Fruit实体。 在代码中,我将要列出树,例如在表视图中。 当你点击一棵树时,它应该显示一个在树上生长的水果列表。 我如何build立这种关系? 我需要给Fruit一个叫树的属性吗? 而我如何在代码中设置关系,例如,当我创build一个Fruit时,我如何将它与给定的Tree相关联?

在NSPredicate中结合“AND”和“OR”条件

再次需要更多的帮助,构build我的NSPredicates 🙁 Category { name:string subs<–>>SubCategory } SubCategory { name:string numbervalue:NSNumber } 我想知道如何用AND和OR创build一个谓词。 例如,我想返回每个类别的名称==“category_name”,也有一个数值为“valueA” 或 “valueB”的子类别。 我已经尝试了所有可能的谓词构造方法的组合,但是我只是无法让它工作。 这是迄今为止我最好的尝试。 NSPredicate *predicate=[NSPredicate predicateWithFormat@"(name== %@) AND (ANY subs.numbervalue==%@ OR ANY subs.numbervalue==%@)", @"aname", value1, value2]; 编辑1 第二次尝试。 对“numbervalue”的过滤仍然不起作用。 NSNumber valueA=[NSNumber numberWithInt:20]; NSNumber valueA=[NSNumber numberWithInt:90]; NSArray *arr=[NSArray arrayWithObject:valueA,valueB,nil]; predicate=[NSPredicate predicateWithFormat:@"(name==%@)AND(ANY subs.numbervalue IN %@)",@"aname",arr]; 编辑2 我已经尝试通过numberValue进行过滤,并将名称全部留下。 1)使用这个结果会导致整个集合被返回,即使集合中只有一个项目具有该值。 predicate=[NSPredicate predicateWithFormat:@"(ANY subs.numbervalue IN […]

用核心数据计算一个简单的总和

我有一个简单的核心数据存储与实体成本与整数属性“价值”。 我想总结一下我的商店中的所有成本,这相当于下面的sql语句: SELECT sum(value) FROM costs 我如何在Cocoa Touch中做到最有效的方式? 通过使用核心数据? 或者只是得到所有的成本实体,并手动进行总结?

iOS CoreData批量插入?

在我的iPhone应用程序中,我需要在核心数据中插入〜2000条logging,然后用户才能使用应用程序的任何function。 我从本地JSON文件加载到CoreData的logging。 这个过程需要很长时间(2.5+分钟),但是只需要一次(或者每个〜10个应用程序打开以获得更新的数据)。 核心数据是否有批量插入? 我怎样才能加快这个插入过程? 如果我不能使用核心数据来加速它,那么其他推荐的选项是什么?

找不到momd文件:核心数据问题

真棒! 我搞砸了! 我是核心数据noob,在我的第一个iOS应用上工作。 堆栈溢出后,我使用这段代码: NSString *path = [[NSBundle mainBundle] pathForResource:@"CoreData" ofType:@"momd"]; if (!path) { path = [[NSBundle mainBundle] pathForResource:@"CoreData" ofType:@"mom"]; } NSAssert(path != nil, @"Unable to find Resource in main bundle"); CoreData是我的应用程序的名称。 我试图通过在我的iPhone模拟器中findsqlite文件的path,然后将其插入到sqlite文件中,将初始数据放入应用程序。 但是在某个时候,我移动了sqlite(认为它会创build一个新的副本),从模拟器中删除了应用程序,并且sqlite文件不见了。 我不确定我是否在这个过程的某个部分(这是几个小时前)离开,但最终的结果是一切都搞砸了。 我如何resubstantiate这个sqlite / momd文件? “清洁”和“清除所有目标”都是灰色的。 我很高兴从我的应用程序发布相关的代码,这将有助于解决这个问题,但有很多关于核心数据的代码,我不明白,所以我不知道什么部分发布! 任何帮助是极大的赞赏。

Swift中的核心数据:只保存for循环中的最后一个对象

我试图将Core Data中的多个对象保存到for循环中的IPodSongs实体,即for song in result{}当前歌曲的标题。 但是我的代码只保存了循环中最后一首歌曲,只是保持覆盖同一个对象。 而不是覆盖相同的对象,我需要每次创build一个新的对象。 我究竟做错了什么? func fetchiPodSongsOnSignup() { var appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate var context: NSManagedObjectContext = appDel.managedObjectContext! var newSong = NSEntityDescription.insertNewObjectForEntityForName("IPodSongs", inManagedObjectContext: context) as! NSManagedObject var request = NSFetchRequest(entityName: "IPodSongs") request.returnsObjectsAsFaults = false var results = context.executeFetchRequest(request, error: nil) let query = MPMediaQuery.songsQuery() let result = query.collections as! [MPMediaItemCollection] […]

Xcode NSManagedObject子类在标记为非可选时包含可选项

我有一个名为Film的核心数据实体,它具有属性标题和date。 我注意到生成的NSManagedObject子类包含可选的NSManaged属性,即使我在核心数据检查器中将属性标记为非可选。 我可以手动将其更改为非可选属性,还是将它作为可选项更好? 为什么?

如何在Xcode 4.2中禁用CoreData的反向关系警告?

在Xcode 3上有一个MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS设置,但是我在Xcode 4.2中找不到它,并试图将其设置为用户定义的构build设置没有效果。 我知道为什么我应该使用反向关系,但我不想因为各种原因。