設定したデリゲートで奇妙な問題が発生しています。表示されるエラーは、「'SearchViewDelegate' のプロトコル宣言が見つかりません」です。
ListViewController.h
#import "SearchView.h"
@class SearchView;
@protocol SearchViewDelegate <NSObject>
@optional
- (void)didTapSearchButton:(SearchView *)searchView;
@end
@interface TaskListViewController : UIViewController <UITableViewDelegate,UITableViewDataSource, UITextFieldDelegate>{
    SearchView *searchView;
}
@property(nonatomic, assign) id<SearchViewDelegate> delegate;
ListViewController.m
- (IBAction)didTapSearchButton
{
  NSString *searchTerm = searchView.searchField.text;
  if ([searchTerm isEqualToString:@""]) {
    [self.view endEditing:YES];
    return ;
  }
  [searchView resignFirstResponder];
  NSArray *results = [[CoreDataManager sharedInstance] fetchTaskByName:searchTerm];
  [tasks removeAllObjects];
  [tasks addObjectsFromArray:results];
  [self.view endEditing:YES];
  [taskTable reloadData];
}
SearchView.h
#import <UIKit/UIKit.h>
@interface SearchView : UIView <UITextFieldDelegate, UISearchBarDelegate, SearchViewDelegate> // <- where the protocol error occurrs
@property (nonatomic, strong) UITextField *searchField;
@property (nonatomic, strong) UIButton *searchButton;
@end
デリゲートを正しく宣言したと思いました。
searchView.m でデリゲート メソッドを呼び出したい場所は次のとおりです。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
  [self.searchField.delegate  didTapSearchButton:self];
  [textField resignFirstResponder];
  return YES;
}