これは、多くの既存の質問と重複している可能性があります。そのうちの1つは次のとおりです 。
または私がこれまでに検索した他のリンク。
私は、場所、名前、画像、性別、電話番号などの人情報を表示するアプリケーションに取り組んでいます。
このデータはxmlを介して取得しています。解析から、NSMutableArrayにフィードし、テーブルビューに詳細を表示します。
この配列のPeopleNAMEに検索を適用したいと思います。
これらから人の名前を取得するにはどうすればよいですか?
これが私が使用しているコードです:
テーブルビューに詳細を表示するには:
if (cell == nil)
{
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCellDetail" owner:self options:nil];
id firstObject =[topLevelObjects objectAtIndex:0];
if ( [ firstObject isKindOfClass:[UITableViewCell class]] )
cell = (CustomCellDetail *)firstObject;
ParsingItem *item=[self.arrayPeoples objectAtIndex:indexPath.section];
cell.lblUserName.text=[item.mdictXMLTagsData valueForKey:@"UserName"];
cell.lblStatus.text=[item.mdictXMLTagsData valueForKey:@"StatusMessage"];
cell.lblAge.text=[item.mdictXMLTagsData valueForKey:@"Gender"];
結果を取得するために、nsmutable配列から検索できるのは文字列のみであることがわかったため、次のように検索を適用しました。
-(void)FetchSearcheRecordsFromArray
{
self.filteredArray = self.arrayPeoples;
NSLog(@"string :%@",strSearchingText);
NSPredicate *Predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",self.strSearchingText];
NSLog(@"string :%@",Predicate);
[self.filteredArray filterUsingPredicate:Predicate];
NSLog(@"Array count is : %d",[self.filteredArray count]);
if ([self.filteredArray count] <= 0 )
{
self.lblNoRecordsFound.hidden = NO;
}
else
{
self.lblNoRecordsFound.hidden = YES;
}
[self.tblViewPeople reloadData];
}
アプリケーションがオンラインでクラッシュする:
[self.filteredArray filterUsingPredicate:Predicate];
文字列が配列に存在せず、解析項目があることを知っています。
人々の名前だけに検索を適用したいのですが、配列から名前だけを取得する方法がわかりません。
どうすればこれを達成できますか?
回避策はありますか?
私はこれを行う必要がありますが、方法がわかりません!!
助けてください !