在我的核心数据模型中,我有两个实体:“照片”和“标签”。它们之间的关系就像:Photo << ------->> Tag。
当我将照片插入数据库并设置关系时,我想使用实体“标签”获取照片的 NSArray。代码是:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(ANY tags == %@)", tag];
requestForPhoto.predicate = predicate;
NSSortDescriptor *sortD = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES];
requestForPhoto.sortDescriptors = [NSArray arrayWithObject:sortD];
NSArray *matches = [document.managedObjectContext executeFetchRequest:requestForPhoto error:nil];
匹配数为 0;然后我关闭应用程序,再次打开并执行上面的代码,数字变为正常,变为1。
我确定我执行方法saveToURL: forSaveOperation:来保存数据。
我在重新打开应用程序之前和之后 NSLog 数据库的内容,它工作正常,关系已经建立。
我有另一个核心数据模型:
photo <<---------> location
当我获取照片时,我使用位置(不是实体)的 NSString 来执行此操作。结果很规律。