Tag: nsfetchrequest

核心数据表关系和Fetchrequest

我正在使用故事板和核心数据开发一个iPad应用程序。我对核心数据没有什么好的想法。我有两个表名A和B.表a有两个字段名为datacode和price。在表B中有两个字段名项目代码和文本。表A有设置限制。 表A 数据码价格 p1 10 m1 17 p0 28 m3 20 w4 12 表B 项目代码文本 p0车 p1巴士 平方米的笔 m1球 p0禁令 r1书 立方米铅笔 n1电视 w4收音机 tableB中的itemcode中的值是表A中的数据代码+一些其他的值。我需要从tableB中获取文本值,这取决于表中数据代码对应的项目代码。我如何从中获取文本B基于这个标准。

访问NSManagedObject的数据属性给我的内存问题

我想我可能会遇到这个错误,也许有人可以指引我正确的方向。 我有一个Entry实体,它与Media实体有一对多的关系。 Media实体包含一个名为originalImage的数据属性。 迭代的前50个Entry实体在该集合中没有任何media项目。 之后,由于它访问originalImage属性并最终耗尽内存并退出到主屏幕,而没有任何其他消息,而不是NSLog中之前的内存警告。 通过仪器运行这个也表明它在这个时候内存不足。 这是我的代码: NSFetchRequest *oldFetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *oldEntryEntity = [NSEntityDescription entityForName:@"Entry" inManagedObjectContext:oldMOC]; [oldFetchRequest setEntity:oldEntryEntity]; [oldFetchRequest setFetchBatchSize:10]; NSArray *entrys = [oldMOC executeFetchRequest:oldFetchRequest error:nil]; for (NSInteger index = 0; index < entrys.count; ++index) { Entry *entry = [entrys objectAtIndex:index]; NSOrderedSet *oldMediaSet = [entry valueForKey:@"media"]; for (Media *media in oldMediaSet) { […]

嵌套核心数据提取

我有一个核心数据数据库与多个实体。 有一个称为“人”的父实体有很多“朋友”,“朋友”有很多“活动”,“活动”有“types”(“types与”活动“有多对多的关系)。尝试实现是通过“Types”过滤所有的“Person”实体,用户将敲击“Type”,然后刷新我的表并过滤“Types”显示的“Person”与他们有关。 目前我想我必须使用复合谓词,但我完全相信如何去做。 到目前为止,我所做的所有事情都是通过遍历我的fetchedObjects来打印出我想要的值: NSArray *persons = self.fetchedResultsController.fetchedObjects; for (JIPerson *person in persons) { JIFriend *friend = person.friends.anyObject; JIActivity *activity = friend.activities.anyObject; JIType *type = activity.type; NSLog(@"%@", type.name); } 这将正确输出值,但我需要使用这些值筛选我的表。 我怎样才能做到这一点?

使用NSPredicate如何使用1个实体过滤来自核心数据的值

我有一个实体和三个属性,称为项目,比率,类别。 我想过滤来自category属性的值。 if (managedObjectContext==nil) { AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; managedObjectContext = appDelegate.managedObjectContext; } NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Restaurantmenu" inManagedObjectContext:managedObjectContext]; [request setEntity:entity]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"('category' contains[c] 'Fast Foood')"]; [request setPredicate:predicate]; NSLog(@"Pre %@",predicate); NSError *error = nil; NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; if (mutableFetchResults == […]

从核心数据库检索数据的备用方法 – ios

我从数据库中检索数据时遇到性能问题。 现在,这是我怎么做的。 +(NSMutableArray *) searchObjectsInContext: (NSString*) entityName : (NSPredicate *) predicate : (NSString*) sortKey : (BOOL) sortAscending { i3EAppDelegate *appDelegate = (i3EAppDelegate *)[[UIApplication sharedApplication] delegate]; NSManagedObjectContext *context = [appDelegate managedObjectContext]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:context]; [request setEntity:entity]; [request setFetchBatchSize:5]; //[request setFetchLimit:10]; [request setReturnsObjectsAsFaults:NO]; // If a predicate was […]

完成FetchRequest完成时的块/callback

我在名为ContentManager模型类中有一个FetchRequest 。 它获取了大量的数据,所以屏幕一直是空白的,直到完成。 在显示获取结果的ViewController中,我想显示一个加载指示器,所以我想在FetchRequest完成时得到一个callback,并将其传递给ViewController来停止加载指示器。 这可能吗? 以下是来自ContentManager类的FetchRequest : – (NSArray*)recipesForMagazine { NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Recipe" inManagedObjectContext:managedObjectContext]; [request setEntity:entity]; NSString* path = [[NSBundle mainBundle] pathForResource:@"magazine_recipe_guids" ofType:@"plist"]; NSArray* recipeGuids = [NSArray arrayWithContentsOfFile:path]; NSPredicate* predicate = [NSPredicate predicateWithFormat:@"guid IN %@",recipeGuids]; [request setPredicate:predicate]; NSSortDescriptor* sort = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; [request setSortDescriptors:[NSArray […]

从实体中提取所有数据并仅打印显示最后一条logging

我试图从一个特定的核心数据实体获取所有的数据,并将每个logging放入一个string。 但是下面的代码只打印它访问的最后一个logging。 我究竟做错了什么? NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext]; [fetchRequest setEntity:entity]; NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; NSLog(@"============================================="); NSLog(@"Generating Data To Be Sent"); for (NSManagedObjectContext * info in fetchedObjects) { NSLog(@"Client Name: %@", [info valueForKey:@"clientName"]); NSLog(@"Client Account Number: %@", [info valueForKey:@"clientAccountNumber"]); NSLog(@"Product Code: %@", [info valueForKey:@"productCode"]); NSLog(@"Product Price: %@", […]

如何将来自Core Data,iOS dev的结果进行分组

我有一个名为“费用”的实体的核心数据,如:实体:“费用”属性:“date”,“类别”,“金额”………. 我的问题是,有可能在年份或年份中获取多less费用? 我知道如果提取基于时间段或类别,我可以使用NSPredicate来筛选提取的结果。 但是我脑海中的“Date”属性应该按年份和月份分开,所以我可以将它们分组在SQL查询中。 有没有可能直接在获取? 否则,唯一的办法是将整个数据提取到一个NSArray,并通过NSPredicate进行一些过滤。 我已经搜查了几天,但没有find直接的答案。 现在我确实相信没有直接的解决办法。 但我仍然认为,如果有人能提供给我更好的解决scheme,那么每个开发者都必须解决这个问题。 任何build议将不胜感激,谢谢你:) ============================新增===================== ==另外,就我所知的有关索引列表的技术而言,我想以UITableView为基础,以“Year-Month”为基础进行索引列表。 我可能会根据每个索引的“年 – 月”向每个arrays提供费用。 有没有更好的方法来做到这一点? 基于数据结构的思想是从实体(年)到多个实体( 年 ,月,年 – 月)到多个实体(年,月,日,金额等)build立一对多的关系。 。 也许这会给我带来一些便利,当我获取索引UITableView的每个数组。

使用核心数据访问检索到的pipe理对象中的数据

我试图访问检索到的pipe理对象中的数据。 Xcode给我错误“不能下标一个值types”[AnyObject]?“与索引types”int“”。 有没有人知道我该怎么做? 谢谢 这是我的方法,它保存数据,并从我的viewDidLoad方法调用: // save data func saveData (jmeno:String, adresa:String, telefon:String) { // delegate let delegate = UIApplication.sharedApplication().delegate as! AppDelegate // managed object context let managedObjectContext = delegate.managedObjectContext // entity description let entityDescription = NSEntityDescription.entityForName("Contacts", inManagedObjectContext: managedObjectContext!) // instance let contact = Contacts(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext!) // ukládání do attributů contact.name = jmeno […]

使用获取的请求sorting描述符

我有我的sorting描述符的问题。 我正在获取一个足球俱乐部的排名。 这是我的web服务如何给数据返回。 "ranking": [ { "type": "competitie", "position": "1", "name": "Club Brugge", "gamesPlayed": "10", "gamesWon": "6", "gamesTied": "4", "gamesLost": "0", "goalsPos": "25", "goalsNeg": "12", "goalsDiff": 13, "points": "22" } 这是我的提取请求。 – (void)getKlassement // attaches an NSFetchRequest to this UITableViewController { NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Klassement"]; request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"position" ascending:YES]]; self.fetchedResultsController = [[NSFetchedResultsController […]