Ios 获取-[SearchViewController tableView:numberOfRowsInSection:]:发送到实例的无法识别的选择器

Ios 获取-[SearchViewController tableView:numberOfRowsInSection:]:发送到实例的无法识别的选择器,ios,uisearchbar,Ios,Uisearchbar,以下是视图控制器的代码,我正在其中添加搜索栏并执行以下操作: SearchViewController.h #import <UIKit/UIKit.h> @interface SearchViewController : UIViewController <UITextFieldDelegate> @property (strong, nonatomic) IBOutlet UISearchBar *search; @end 在搜索栏中单击以输入文本时,我发现一

以下是视图控制器的代码,我正在其中添加搜索栏并执行以下操作:

SearchViewController.h

#import <UIKit/UIKit.h>

@interface SearchViewController : UIViewController <UITextFieldDelegate>

@property (strong, nonatomic) IBOutlet UISearchBar *search;

@end
在搜索栏中单击以输入文本时,我发现一个错误:

-[SearchViewController表视图:numberOfRowsInSection::发送到实例0x8e68990的无法识别的选择器


从错误中可以看出,您的应用程序似乎也在尝试查找表视图委托方法。几张支票

  • 你能删除你的代码吗 “MMDrawerController/UIViewController+MMDrawerController.h”并重试
  • nib文件是否包含表视图?如果是,你能检查一下它是否正确吗 是否连接到任何IBO插座

  • 可能不相关,但您所说的
    [search.delegate self]是什么意思?我很惊讶你竟然没有得到警告。你的意思是
    search.delegate=self
    ?为什么这是答案?为什么搜索栏要查找表视图方法?VC并没有说它是一个表视图控制器,这不是搜索栏委托的必需方法。
    #import "SearchViewController.h"
    #import "MMDrawerController/UIViewController+MMDrawerController.h"
    
    @interface SearchViewController ()
    
    @end
    
    @implementation SearchViewController
    
    @synthesize search;
    
    - (BOOL)prefersStatusBarHidden
    {
        return YES;
    }
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self)
        {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        [search.delegate self];
    
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
    
        [self.view addGestureRecognizer:tap];
        [search setShowsCancelButton:YES animated:NO];
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    #pragma mark - UITextFieldMethod
    
    -(void) textFieldDidEndEditing:(UITextField *)textField
    {
        [search resignFirstResponder];
    }
    
    -(BOOL) textFieldShouldReturn:(UITextField *)textField
    {
        [search resignFirstResponder];
        return YES;
    }
    
    #pragma mark - HandlingKeyboard
    
    -(void) dismissKeyboard
    {
        [search resignFirstResponder];
    }
    
    #pragma mark - UISearchBarMethods
    
    - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
    {
        [search resignFirstResponder];
        [search endEditing:YES];
        [self.mm_drawerController toggleDrawerSide:MMDrawerSideRight animated:YES completion:nil];
    }
    
    - (void) searchBarCancelButtonClicked:(UISearchBar *)searchBar
    {
        [search resignFirstResponder];
        [self.mm_drawerController toggleDrawerSide:MMDrawerSideRight animated:YES completion:nil];
    }
    
    - (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
    {
        [search resignFirstResponder];
    }
    
    @end