2011-05-19 73 views
0

我有一個問題,使獨特的屬性!作出獨特的屬性

我已經搜查這裏,你們讓XCode中編程的獨特屬性的方法:

1: using if(![ARRAY containsObject:object]) ... 

2: fetch Array with object and then if ([object count]>0) ... 

我的情況:

我有一個實體,稱爲userAccounts是包含2個屬性: userName & passWord

我有一個ArrayController被綁定到managedObjectContext並設置爲實體userAccounts

我有2個文本框稱爲userNameTFpasswordTF和所有我要的是找出如果userNameTF字符串值是否在UserAccounts之前添加(唯一性建議)。

的問題是:
1. NSArrayController的不支持containsObject方法
2.我不能加載的userName屬性數組使用它containsObject方法

我應該怎麼做才能解決這個問題?

提前感謝

回答

0

可以使用arrangedObjectsvalueForKey:獲得包含所有陣列控制器的對象的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" 
}