我有一个 iPad 应用程序(Xcode 4.6、iOS 6.2、ARC 和 Storyboards)。我有一个包含原型单元格的 UITableView,带有两个标签(lName 和 lPhone)。我用核心数据存储的结果填充了一个 NSArray。我从示例中复制了代码,但我迷路了!我有两个要查找的字段:姓名和电话号码。我希望能够搜索任何一个。我尝试使用 UISearchBar 控制器,但结果跨越整个窗口,这是不可接受的。所以,我试图在没有控制器的情况下做到这一点。我希望搜索过滤 UITableView 中显示的条目,这段代码应该这样做。
当我执行 MR_findAll (MagicalRecord) 时,我得到了核心数据存储中的所有属性。这就是我迷失的地方-如何将两个属性从数组中取出并放入 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];
}
}
}
我也不明白NSRange 将如何匹配我正在寻找的两个字段。我在这里真的很困惑。