我已经使用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];
需要帮助!
提前谢谢!答案 0 :(得分:1)
首先提出一些建议:在根表视图中,您应该使用NSFetchedRequestController来管理顶级对象。在Apple的示例代码中查看Recipes应用程序进行演示。
至于您所看到的主要问题,您应该做的是将category1对象推送到子视图控制器。然后,子视图控制器可以查询该category1对象以显示其所有子对象。子视图控制器上不需要提取,因为您已经拥有父对象。同样,Apple的配方示例应用程序将为您清楚地展示这一点。
答案 1 :(得分:-1)
在视图中执行,因此子类别有两个视图,一个用于食物,一个用于零食。然后在第一张桌子上放置它,这样当你点击食物时,它会进入食物视图,与小吃一样。如果您无法使用它,请尝试使用UIButtons。我所做的就是如果所有其他方法都失败了,请转到UIButtons :)如果你需要帮助它来切换视图我在8月项目的25个应用程序中做了一个例子,你可以在这里找到我的例子:http://appeveryday.wordpress.com/2009/08/02/app-3/ < / p>