在一个新的ViewController的UISearchController(searchResultsController: nil)
中使用viewDidLoad()
进行了EXC_BREAKPOINT (code=1, subcode=0x185d73080)
调用(也就是说,某些nil可选内容已被解包)。
如果我尝试在另一个新项目/游乐场中执行代码,它可以正常运行而不会崩溃。
还创建了一个自定义UISearchController
并通过断点调试它,它引导我进入init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
方法然后崩溃了。它可能是联系在一起的。
我必须提一下,调用简单init()
不会导致我的应用崩溃。
确切的例子:
override func viewDidLoad() {
super.viewDidLoad()
UISearchController(searchResultsController: nil)
}
答案 0 :(得分:1)
解决了,但这太不可思议了。我创建了一个新项目并逐个添加文件,以查看哪一个干扰了我的代码。
好像我有一个扩展名:
@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!
随意崩溃了我的应用程序。
经验教训,扩展可能会引发错误。