我遇到制作独特属性的问题!
我已经在这里搜索过你们在XCode编程中创建一个独特属性的方法:
1: using if(![ARRAY containsObject:object]) ...
2: fetch Array with object and then if ([object count]>0) ...
我的情况:
我有一个名为 userAccounts 的实体,其中包含2个属性: userName & passWord 。
我有一个 ArrayController ,它绑定到managedObjectContext并设置为Entity userAccounts
我有2个文本域名为 userNameTF 和 passwordTF ,我想要的是找到 userNameTF 字符串值是否添加到< strong> UserAccounts 与否(建议的唯一性)。
问题是:我该怎么做才能解决这个问题?
非常感谢提前
答案 0 :(得分:0)
您可以使用userName
和arrangedObjects
获取包含数组控制器中所有对象中valueForKey:
属性值的数组:
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"
}