UISearchController 的 init(searchResultsController: UIViewController?) 崩溃
UISearchController's init(searchResultsController: UIViewController?) crashes
在新的 ViewController 的 viewDidLoad()
中调用 UISearchController(searchResultsController: nil)
会崩溃并出现 EXC_BREAKPOINT (code=1, subcode=0x185d73080)
(也就是一些 nil 可选被解包)。
如果我尝试在另一个新项目/游乐场中执行代码,它可以正常运行而不会崩溃。
我还创建了一个自定义 UISearchController
并通过断点对其进行调试,它引导我使用 init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
方法,然后它崩溃了。它可能已链接。
我必须提一下,调用简单的 init()
不会使我的应用程序崩溃。
具体示例:
override func viewDidLoad() {
super.viewDidLoad()
UISearchController(searchResultsController: nil)
}
已解决,但令人难以置信。我新建了一个项目,一个一个的添加文件,看看哪个干扰了我的代码。
好像我有一个扩展:
@IBInspectable var paddingRight: CGFloat {
get {
return rightView!.frame.size.width
}
set {
let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: newValue, height: frame.size.height))
rightView = paddingView
rightViewMode = .always
}
}
而且 rightView!
让我的应用随机崩溃,没有错误。
经验教训,扩展可能会引发该错误。
在新的 ViewController 的 viewDidLoad()
中调用 UISearchController(searchResultsController: nil)
会崩溃并出现 EXC_BREAKPOINT (code=1, subcode=0x185d73080)
(也就是一些 nil 可选被解包)。
如果我尝试在另一个新项目/游乐场中执行代码,它可以正常运行而不会崩溃。
我还创建了一个自定义 UISearchController
并通过断点对其进行调试,它引导我使用 init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
方法,然后它崩溃了。它可能已链接。
我必须提一下,调用简单的 init()
不会使我的应用程序崩溃。
具体示例:
override func viewDidLoad() {
super.viewDidLoad()
UISearchController(searchResultsController: nil)
}
已解决,但令人难以置信。我新建了一个项目,一个一个的添加文件,看看哪个干扰了我的代码。
好像我有一个扩展:
@IBInspectable var paddingRight: CGFloat {
get {
return rightView!.frame.size.width
}
set {
let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: newValue, height: frame.size.height))
rightView = paddingView
rightViewMode = .always
}
}
而且 rightView!
让我的应用随机崩溃,没有错误。
经验教训,扩展可能会引发该错误。