和以前一样,我有User和Friend实体,One User to Many Friend(s)。
我希望能够检查一下我之前是否已经添加了一位朋友(虽然此时只知道潜在新朋友的名字)。所以
NSString *name = @"Bob";
Bool exists = NO;
for(Friend *friend in user.friends)
{
if([friend.name isEqualToString:name])
exists = YES;
}
if(!exists)
{
//add user
}
我能看到的唯一方法就是遍历所有的Friend对象并检查属性以查看它是否在那里,如果在所有迭代之后找不到匹配,则添加它。
有更好的方法吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
这是不同的方式:
BOOL exists = ([[user.friends filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"name == %@",name]] count] > 0);
另外,如果你这样做,你应该提前休息:
for(Friend *friend in user.friends)
{
if([friend.name isEqualToString:name]) {
exists = YES;
break;
}
}