获取字符串 属性 以特定字母开头的 NSArray 中的所有对象

Get all the objects inside an NSArray whose string property starts with a particular letter

我有一个 NSArray 包含 MyCustomObject 的实例;每个人都有一个 NSString 叫做 firstName.

数组按 属性 从 A 到 Z 排序。

我只想要 firstName 以字母 A 开头的这些对象。

例如,假设我的数组有 100 个对象。

1. Apple
2. Ace
3. Article
4. Ball
5. Cat
6. Camel
....

100. Zebra

在这里,我只想要"Apple"、"Ace"和"Article"。

您可以通过谓词过滤数组

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.firstName beginswith[c] %@",<value>];
NSArray *result = [array filteredArrayUsingPredicate:predicate];

有关 NSPredicate 的更多详细信息,请访问此 link

你可以这样做:

NSIndexSet* indexes = [array indexesOfObjectsPassingTest:^BOOL(CustomObject* obj, NSUInteger idx, BOOL *stop){
    return [obj.firstName rangeOfString:@"a" options:NSCaseInsensitiveSearch | NSDiacriticInsensitiveSearch | NSAnchoredSearch].location != NSNotFound;
}];
NSArray* matchingObjects = [array objectsAtIndexes:indexes];