如何在 objective-C 中过滤自定义对象
How to filter custom object in objective-C
我有一个包含数据的自定义对象:
@interface Students : NSObject
{
}
@property (nonatomic,strong) NSString *ID;
@property (nonatomic,strong) NSString *FirstName;
@property (nonatomic,strong) NSString *MiddleName;
@property (nonatomic,strong) NSString *LastN
我想按姓氏筛选。例如:
我想要一个数组,其中包含姓氏 ="Cena"
的学生的所有详细信息
我试过这个:
NSMutableArray *arrayToFilter = self.studentList;
NSString *nameformatString = @"LastName contains[c] a";
NSPredicate *namePredicate = [NSPredicate predicateWithFormat:nameformatString];
[arrayToFilter filterUsingPredicate:namePredicate];
当我 运行 我的应用程序出现此错误并且我的应用程序崩溃时:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[< Students 0x7fd25e102d20> valueForUndefinedKey:]:
this class is not key value coding-compliant for the key a.'
我只能获取数组中的姓氏,但我知道这是错误的。如何根据姓氏对自定义对象进行排序。
我用来获取姓氏的代码:
names = [[NSMutableArray alloc]init];
for (int i = 0; i < [self.studentList count] ; i++)
{
Students * studentsObj = (Students*)[self.studentList objectAtIndex:i];
[names addObject:studentsObj.LastName];
}
将谓词更新为 ,
NSString *textToMatch = @"a";
NSPredicate *namePredicate = [NSPredicate predicateWithFormat:@"LastN CONTAINS[cd] %@", textToMatch];
然后
NSMutableArray *arrayToFilter = self.studentList;
NSArray *filteredArray = [arrayToFilter filteredArrayUsingPredicate:namePredicate];
仅获取姓氏,
NSArray *lastNames = [filteredArray valueForKey:@"LastN"];
NSArray *sortedArray = [lastNames sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
我有一个包含数据的自定义对象:
@interface Students : NSObject
{
}
@property (nonatomic,strong) NSString *ID;
@property (nonatomic,strong) NSString *FirstName;
@property (nonatomic,strong) NSString *MiddleName;
@property (nonatomic,strong) NSString *LastN
我想按姓氏筛选。例如: 我想要一个数组,其中包含姓氏 ="Cena"
的学生的所有详细信息我试过这个:
NSMutableArray *arrayToFilter = self.studentList;
NSString *nameformatString = @"LastName contains[c] a";
NSPredicate *namePredicate = [NSPredicate predicateWithFormat:nameformatString];
[arrayToFilter filterUsingPredicate:namePredicate];
当我 运行 我的应用程序出现此错误并且我的应用程序崩溃时:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[< Students 0x7fd25e102d20> valueForUndefinedKey:]:
this class is not key value coding-compliant for the key a.'
我只能获取数组中的姓氏,但我知道这是错误的。如何根据姓氏对自定义对象进行排序。
我用来获取姓氏的代码:
names = [[NSMutableArray alloc]init];
for (int i = 0; i < [self.studentList count] ; i++)
{
Students * studentsObj = (Students*)[self.studentList objectAtIndex:i];
[names addObject:studentsObj.LastName];
}
将谓词更新为 ,
NSString *textToMatch = @"a";
NSPredicate *namePredicate = [NSPredicate predicateWithFormat:@"LastN CONTAINS[cd] %@", textToMatch];
然后
NSMutableArray *arrayToFilter = self.studentList;
NSArray *filteredArray = [arrayToFilter filteredArrayUsingPredicate:namePredicate];
仅获取姓氏,
NSArray *lastNames = [filteredArray valueForKey:@"LastN"];
NSArray *sortedArray = [lastNames sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];