使用Uisearchbar

时间:2018-02-20 08:20:29

标签: ios swift uiview uisearchbar

我正在设计一个带有搜索栏的视图,每当我加载视图时它都会崩溃。设计如下

enter image description here

我得到的错误如下

  

*由于未捕获的异常而终止应用   ' NSInvalidArgumentException',原因:' - [UIView setImage:]:   无法识别的选择器发送到实例0x153e646f0'       * 第一次抛出调用堆栈:       (0x182303164 0x18154c528 0x182310628 0x18bc7e188 0x182308b10 0x1821edccc 0x18b990b80 0x18b98f0d0 0x18be68870 0x18bffe380   0x18bffe4f8 0x18bffe0b8 0x18bb8b74c 0x18bffe380 0x18bffe4f8   0x18bffe0b8 0x18bb8b74c 0x18bffe380 0x18bffe0b8 0x18be506c8   0x18bffe380 0x18bffe4f8 0x18bffe0b8 0x18be4fa08 0x18bc2cbe0   0x18b9da8e8 0x18b8bd6a8 0x18b8bd5d8 0x18b9df878 0x18b9df564   0x18b9df3c0 0x18b9e1938 0x18ba953c8 0x18b8f25cc 0x18ba950f8   0x18b8f25cc 0x18b8f254c 0x18b8dd0f4 0x18be6180c 0x18b8f25cc   0x18b8f254c 0x18b8dd0f4 0x18b8f1e40 0x18bf4d5e4 0x18bf48b94   0x1822aacdc 0x1822a8694 0x1822a8c50 0x1821c8c58 0x184074f84   0x18b9215c4 0x100294ee8 0x181ce856c)       libc ++ abi.dylib:以NSException类型的未捕获异常终止

查看控制器类代码如下

    import UIKit

class SearchStoreViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        print ("Search Loaded")


        // Do any additional setup after loading the view.
    }

    override func viewWillAppear(_ animated: Bool) {

        //super.viewWillAppear(animated)

        //self.tabBarController?.navigationItem.title = DASHBOARD_SEARCH_VIEW_TITLE

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */

}

经过一些研究后我发现它的SearchBar导致了这个问题。如果删除搜索栏,则视图加载正常。任何人都可以帮我解决问题。

2 个答案:

答案 0 :(得分:0)

当您从搜索结果中设置图片时,请确认您在seImage:上的UIImageView类型上的UIView不是setImage类型。

  

此错误本身表示您使用UIView类型对象设置图像是不可能的,bcoz UIView没有IBOutlet

同时检查{{1}}连接是否连接到UIView或UIImageView。

答案 1 :(得分:0)

您可以通过添加异常断点来跟踪导致崩溃的行。

  1. 转到断点导航器(Cmd + 8)

  2. 添加异常断点...

  3. enter image description here

    崩溃的原因是您从setImage对象调用了UIView方法。

    类似

    [object setImage:image];
    

    确保object有点UIImageView