gpt4 book ai didi

ios - 过滤搜索结果

转载 作者:行者123 更新时间:2023-11-29 03:15:10 26 4
gpt4 key购买 nike

我正在从事一个项目,该项目使您能够在选择表格 View 中的单元格时播放声音。为了让事情更简单一些,我实现了一个搜索功能。问题是,它工作得不太正常。当你点击一个结果时,播放的声音来自原始数组,而不是新过滤的。我知道我的错误就在这里,我想要一些帮助来找到它。

//Create new Sound Object
Sounds *sound = nil;
//check to see whether the normal table or search results table is being displayed and set the Sound object from the appropriate array
if (tableView == self.searchDisplayController.searchResultsTableView) {

sound = [filteredSoundArray objectAtIndex:indexPath.row];
}else{
sound = [soundArray objectAtIndex:indexPath.row];
}

//Configure the cell
[[cell textLabel]setText:[sound name]];
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];

return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSString *selectedSoundFile = [[soundArray objectAtIndex:indexPath.row]name];
NSString *path = [[NSBundle mainBundle]pathForResource:selectedSoundFile ofType:@"mp3"];


if(path){
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

[self.theAudio play];
}

if (tableView == self.searchDisplayController.searchResultsTableView) {
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

[self.theAudio play];

}

}

谢谢!

最佳答案

更改didSelectRowAtIndexPath中的数组

NSString *selectedSoundFile = [[soundArray objectAtIndex:indexPath.row]name];

如果您从搜索结果中进行播放,请使用 filteredSoundArray 而不是 soundArray..

您在选择上播放的条件应该从您用于在表格 View 中显示的数组中播放。但您正在使用包含所有声音的数组。

didSelectRowIndexPath中进行如下更改

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

[tableView deselectRowAtIndexPath:indexPath animated:YES];

NSString *selectedSoundFile;
if (tableView == self.searchDisplayController.searchResultsTableView) {

selectedSoundFile = [[filteredSoundArray objectAtIndex:indexPath.row]name];
}else{
selectedSoundFile = [[soundArray objectAtIndex:indexPath.row]name];
}
NSString *path = [[NSBundle mainBundle]pathForResource:selectedSoundFile ofType:@"mp3"];


if(path){
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

[self.theAudio play];
}
}

关于ios - 过滤搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21769741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com