我想知道如何在Core Data中实现验证。我想要做的是确保属性在相关父对象的范围内是唯一的。换句话说,我想知道如何在Core Data中实现validates_uniqueness_of :field, :scope => :parent
范例(来自rails / activerecord)。
例如,假设我创建了两个模型 - 一个名为Blog,另一个名为Post。每个帖子都有一个名为title
的属性。不同的博客对象可以使帖子具有相同的标题,但如何在博客范围内验证title
的唯一性?
谢谢!
答案 0 :(得分:0)
将关系转移到父级并获取帖子集。然后你可以运行一个谓词来检查它的唯一性,如:
NSSet *set = [[self parent] posts];
NSSet *filtered = [set filteredSetWithPredicate:[NSPredicate preicateWithFormat:@"self != %@ and title == %@", self, [self title]]];
if ([filtered count] > 0) return NO;
return YES;