Iphone核心数据问题

时间:2009-09-05 00:31:03

标签: iphone core-data sdk

我已经使用2个实体设置了应用程序,名为Category1和category2。 category1和category2之间存在多对多关系。当在tableview(category1)中按下单元格时,新的tableview将显示与category1相关的所有category2单元格。这是一个例子:

我在第一个tableview中有两个category1项,叫做Food and Snacks。项目“食物”有一个子类别(类别2),包含5种不同的食物。项目“Snacks”有一个subateogry(category2),包含10种不同的小吃。

因此,当我推送食品(category1)时,我只想要装入食品(其中5个)。现在,我可以看到tableView中的所有5个食物项目,以及“零食”类别2中的10个项目。

我在category2中使用此代码:

 NSFetchRequest *request = [[NSFetchRequest alloc] init];
 NSEntityDescription *entity = [NSEntityDescription entityForName:@"Folder" inManagedObjectContext: tag.managedObjectContext];
 [request setEntity:entity];

 //NSMutableSet *filtered = [tag mutableSetValueForKey:@"folders"];

 // Order the events by creation date, most recent first.
 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"creationDate" ascending:NO];
 NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
 [request setSortDescriptors:sortDescriptors];
 [sortDescriptor release];
 [sortDescriptors release];

 // Execute the fetch -- create a mutable copy of the result.
 NSError *error = nil;
 NSMutableArray *mutableFetchResults = [[tag.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
 if (mutableFetchResults == nil) 
 {
  // Handle the error.
  NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
  exit(-1);  // Fail  
 }

 // Set self's events array to the mutable array, then clean up.
 [self setTagsArray:mutableFetchResults];
 [mutableFetchResults release];
 [request release];

需要帮助!

提前谢谢!

2 个答案:

答案 0 :(得分:1)

首先提出一些建议:在根表视图中,您应该使用NSFetchedRequestController来管理顶级对象。在Apple的示例代码中查看Recipes应用程序进行演示。

至于您所看到的主要问题,您应该做的是将category1对象推送到子视图控制器。然后,子视图控制器可以查询该category1对象以显示其所有子对象。子视图控制器上不需要提取,因为您已经拥有父对象。同样,Apple的配方示例应用程序将为您清楚地展示这一点。

答案 1 :(得分:-1)

在视图中执行,因此子类别有两个视图,一个用于食物,一个用于零食。然后在第一张桌子上放置它,这样当你点击食物时,它会进入食物视图,与小吃一样。如果您无法使用它,请尝试使用UIButtons。我所做的就是如果所有其他方法都失败了,请转到UIButtons :)如果你需要帮助它来切换视图我在8月项目的25个应用程序中做了一个例子,你可以在这里找到我的例子:http://appeveryday.wordpress.com/2009/08/02/app-3/ < / p>