获取字符串 属性 以特定字母开头的 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];
我有一个 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];