所以我加入一个ListItem到LISTNAME(有一个一对多的关系设置好的了),在A级核心数据 - 取不产生相同的结果
ListItem *newItem = [NSEntityDescription insertNewObjectForEntityForName:@"ListItem"
inManagedObjectContext:self.context];
//setting some attributes...
[listName addListItemsObject:newItem];
[self.context save:&error];
之后,B类是通过代理方法
在那里我想从核心数据中获取数据,但是...如果我要获取所有ListName,则ListItems不是最新的(例如只有5个项目而不是6)。如果我获取所有的ListItems,那么这里就是全部(6个中的6个)。
什么是错我的代码...我需要得到所有ListNames虽然
NSError *error;
NSFetchRequest *req = [[NSFetchRequest alloc] init];
if(context == nil)
NSLog(@"context is nil");
NSEntityDescription *descr = [NSEntityDescription entityForName:@"ListName" inManagedObjectContext:self.context];
[req setEntity:descr];
NSSortDescriptor *sort = [[NSSortDescriptor alloc]initWithKey:@"lastModified" ascending:NO];
[req setSortDescriptors:[NSArray arrayWithObject:sort]];
NSArray * results = [self.context executeFetchRequest:req error:&error];
self.listNames = [results mutableCopy];
if ([results count] > 0) {
ListName *test = [results objectAtIndex:0];
[test.listItems count];
NSLog(@"item count on list %i", [test.listItems count]);
//wrong result
NSFetchRequest *newReq = [[NSFetchRequest alloc] init];
NSEntityDescription *descr = [NSEntityDescription entityForName:@"ListItem" inManagedObjectContext:self.context];
[newReq setEntity:descr];
NSArray * results2 = [self.context executeFetchRequest:newReq error:&error];
NSLog(@"item count on items %i", [results2 count]);
//right result
}
我没有得到您的问题。 – Robin
如果我正在读取listname,listitems的计数是5而不是6.如果我正在读取ListItems,那么它就是6 – gabac