iPad アプリ (Xcode 4.6、iOS 6.2、ARC、ストーリーボード) があります。2 つのラベル (lName と lPhone) を持つプロトタイプ セルを含む UITableView があります。Core Data ストアの結果を NSArray に格納しました。サンプルからコードをコピーしましたが、迷ってしまいました! 名前と電話番号の 2 つのフィールドを探しています。どちらでも検索できるようにしたいです。UISearchBar Controller を使用してみましたが、結果がウィンドウ全体に広がり、受け入れられません。だから、私はコントローラなしでこれをやろうとしています。検索で、UITableView に表示されているエントリをフィルター処理する必要があります。これは、このコードで実行することになっています。
MR_findAll (MagicalRecord) を実行すると、コア データ ストア内のすべての属性が取得されます。これは私が迷っているところです - どうすれば配列から 2 つの属性を取得して NSMutableArray allTableDataに入れることができますか、それともこの場合は必要でしょうか?
これまでのところ、これは私のコードです:
NSArray *allDataArray = [ClientInfo MR_findAll];
// move objects from Core Data store to NSMutablearray
[allTableData addObjectsFromArray:allDataArray];
if(text.length == 0) {
isFiltered = FALSE;
}
else {
isFiltered = true;
filteredTableData = [[NSMutableArray alloc] init];
for (ClientCell* client in allTableData) {
NSRange nameRange = [client.lName.text rangeOfString:text options:NSCaseInsensitiveSearch];
NSRange phoneRange = [client.lPhone.text rangeOfString:text options:NSCaseInsensitiveSearch];
if(nameRange.location != NSNotFound || phoneRange.location != NSNotFound) {
[filteredTableData addObject:client];
}
}
}
また、探している 2 つのフィールドに対して NSRange がどのように一致するのかわかりません。私はここで本当に混乱しています。