核心数据 - 如何验证范围内属性的唯一性

时间:2010-07-17 03:48:00

标签: iphone validation core-data

我想知道如何在Core Data中实现验证。我想要做的是确保属性在相关父对象的范围内是唯一的。换句话说,我想知道如何在Core Data中实现validates_uniqueness_of :field, :scope => :parent范例(来自rails / activerecord)。

例如,假设我创建了两个模型 - 一个名为Blog,另一个名为Post。每个帖子都有一个名为title的属性。不同的博客对象可以使帖子具有相同的标题,但如何在博客范围内验证title的唯一性?

谢谢!

1 个答案:

答案 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;