设置唯一属性

| 我在制作独特属性时遇到了问题! 我已经在这里搜索了你们在XCode编程中使属性唯一的方法:
1: using if(![ARRAY containsObject:object]) ...

2: fetch Array with object and then if ([object count]>0) ... 
我的情况 : 我有一个名为userAccounts的实体,其中包含2个属性:userName&passWord。 我有一个绑定到managedObjectContext并设置为实体userAccounts的ArrayController 我有2个文本字段,分别称为userNameTF和passwordTF,我想要查找的是是否将userNameTF字符串值添加到UserAccounts之前(否)(唯一性建议)。 问题是 : 1. NSArrayController不支持containsObject方法 2.我无法将userName属性加载到数组以将其用于containsObject方法 我该怎么做才能解决这个问题? 提前谢谢了     
已邀请:
您可以使用
arrangedObjects
valueForKey:
在数组控制器的所有对象中获取一个包含
userName
属性值的数组:
NSArray *userNames = [[arrayController arrangedObjects] valueForKey:@\"userName\"];
if([userNames containsObject:@\"theNewUsername\"]) {
    // user name taken
} else {
    // user name available
}
如果要查找已经具有用户名的对象,也可以使用
indexOfObjectPassingTest:
NSArray *objects = [arrayController arrangedObjects];
NSUInteger index = [objects indexOfObjectPassingTest:^(id object, NSUInteger index, BOOL *stop) {
    if([[object valueForKey:@\"userName\"] isEqualToString:@\"theNewUsername\"]) {
        *stop = YES;
        return YES;
    }
    return NO;
}];
if(index == NSNotFound) {
    // user name available
} else {
    // user name taken by the object at \"index\" within \"objects\"
}
    

要回复问题请先登录注册