提问人:Muju 提问时间:10/12/2016 最后编辑:Muju 更新时间:10/13/2016 访问量:131
从目标 c 中的 NSMutableArray 获取错误的 id
Getting Wrong id from NSMutableArray in objective c
问:
我是 iOS 的新手,当我在搜索后在文本框中添加搜索框时,给了我错误的 ID。在我的代码中,有三个数组,一个用于 id,另一个用于名称,第三个用于搜索。
我的代码:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)sections{
if(tableView == table)
{
if(isFilter)
{
return [searchArray count];
}
else
return [idarray count];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(tableView == table)
{
if(isFilter)
{
cell.textLabel.text=[NSString stringWithFormat:@"%@",[searchArray objectAtIndex:indexPath.row]];
}
else
{
cell.textLabel.text=[NSString stringWithFormat:@"%@",[namearray objectAtIndex:indexPath.row]];
}
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(tableView == table)
{
if(isFilter)
{
txt.text=[searchArray objectAtIndex:indexPath.row];
table.hidden=YES;
txt.enabled=NO;
txt.text=[NSString stringWithFormat:@"%@",[namearray objectAtIndex:indexPath.row]];
idlbl.text=[NSString stringWithFormat:@"%@",[idarray objectAtIndex:indexPath.row]];
EmployeeID=idlbl.text;
EmployeeName=txt.text;
}
else
{
txt.text=[NSString stringWithFormat:@"%@",[namearray objectAtIndex:indexPath.row]];
idlbl.text=[NSString stringWithFormat:@"%@",[idarray objectAtIndex:indexPath.row]];
table.hidden=YES;
EmployeeID=idlbl.text;
EmployeeName=txt.text;
txt.enabled=NO;
}
}
}
-(void)textFieldDidChange:(UITextField *)textField
{
searchTextString=textField.text;
[self updateSearchArray:searchTextString];
}
-(void)updateSearchArray:(NSString *)searchText
{
if(searchText.length==0)
{
isFilter=NO;
}
else{
isFilter=YES;
searchArray=[[NSMutableArray alloc]init];
for(NSString *string in namearray){
NSRange stringRange=[string rangeOfString:searchText options:NSCaseInsensitiveSearch];
if(stringRange.location !=NSNotFound){
[searchArray addObject:string];
}
}
[table reloadData];}
}
我将 EmployeeID 获取为 1,其中 EmployeeID 为 18,它采用表中的值,而不是获取 id 数组的值。我正在使用 if(tableview == table),因为一个视图控制器中有多个表。它还在更新 id.,如图所示
但我不需要更新 idarray。我的问题是我怎样才能得到数组的值,它给了我一个tableview单元格的索引路径 任何建议 提前致谢!
答:
0赞
Purushothaman
10/12/2016
#1
当我曾经在我的应用程序中的搜索栏按钮上工作时,我也遇到了同样的问题,但是我已经创建了充当搜索栏的文本框。
我以为这对你来说也很好,快乐编码.......
评论
0赞
Muju
10/12/2016
我正在使用相同的代码。但问题是这段代码只有名称,但我的数组有名称和 id。它是字典。
0赞
Muju
10/12/2016
当我从 18 搜索到 1 时,我的 ID 数组也会更新
0赞
Himanshu Moradiya
10/13/2016
#2
检查此文件以创建一个阵列,并使用 NSPredicate 对该阵列执行搜索
https://gist.github.com/himanshu-benzatine/716fd8d7ca035a5c0a01c87df48915bf
评论
NSArray *
if (isFilter)