我正在开发一个用于在联系人列表上方创建搜索栏的应用程序。如果我按下搜索栏应用程序会崩溃。我调试了应用程序并发现崩溃发生在这一行。filteredCandyArray = [NSMutableArray arrayWithArray:[candyArray filteredArrayUsingPredicate:predicate]];
我在程序中所做的是获取所有联系人(姓名、编号和图像)并添加到数组(candyArray)。但是当我尝试执行 NSPredicate 操作时,我收到此消息并且应用程序崩溃给出以下消息。
wetwert[2380:60b] * 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不符合键名的键值编码。” * First throw call stack: (0x2d51ae83 0x378776c7 0x2d51ab89 0x2ded6e3f 0x2de3c139 0x2de7a3f7 0x2de79fb5 0x2de79083 0x2de7901f 0x2de78e2d 0x27d23 0x27f37 0x2fe92b79 0x2fcd3da3 0x2fcd3d3f 0x2fcd3d13 0x2fcbf743 0x2fe928ed 0x2fcdd8b1 0x2fe53b67 0x2fe5310f 0x2fe92727 0x2fe52e2d 0x2de49aa5 0x2fce1485 0x2fe52d5f 0x2fcc9049 0x2defee4b 0x2d4e5f1f 0x2d4e53e7 0x2d4e3bd7 0x2d44e471 0x2d44e253 0x321882eb 0x2fd03845 0x28451 0x37d70ab7) libc++abi. dylib:以 NSException 类型的未捕获异常终止
我正在提供添加到 array.below 的代码
for (int i=0; i<_contactsarray.count; i++) {
[candyArray addObject:[store candyofcategory:[_contactsarray objectAtIndex:i] phone:[_numbersarray objectAtIndex:i] image:[_imagesarray objectAtIndex:i]]];
其中 3 个数组包含 name,phone no 。和图像。被调用的方法如下所示。
+(id)candyofcategory:(NSString *)name phone:(NSString *)phone image:(UIImage *)image{
store *newstore=[[self alloc]init];
newstore.c_name=name;
newstore.c_phone=phone;
newstore.cnt_image=image;
return newstore;
}
此方法位于 NSObject 类的“存储”类中。我能够获取数据并在 tableview 中显示,但是当我在这个数组上调用谓词操作时,我遇到了崩溃。关于这个问题的任何想法?我在下面添加谓词方法
-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
// Update the filtered array based on the search text and scope.
// Remove all objects from the filtered search array
[self.filteredCandyArray removeAllObjects];
// Filter the array using NSPredicate
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name contains[c] %@",searchText];
filteredCandyArray = [NSMutableArray arrayWithArray:candyArray];
filteredCandyArray = [NSMutableArray arrayWithArray:[candyArray filteredArrayUsingPredicate:predicate]];
}