我试图删除我之前添加到UIViewController视图中的视图。代码正在iOS 9上运行,但在模拟器中崩溃了8.3。
我在添加之前为视图指定了100个标记。
出于调试目的,我通过执行
检查以确保标记为100的视图for view in self.view.subviews {
print(view.tag)
}
我看到输出为100,但XCode显示
Thread 1: EXC_BAD_ACCESS(code=1, address... )
在这一行
let view = self.view.viewWithTag(100)
答案 0 :(得分:0)
不要使用标签。只是不要。 Apple建议开发人员不要在今年的WWDC session(14:43)中使用标签:
所以我的意思是,如果你使用View With Tag或Set Tag UIView API和运输代码,我将鼓励你摆脱它。 ..当你不仅没有得到编译器警告时,你得到的任何运行时错误都不会说明你使用带标签的视图。
改为使用类属性(IBOutlets)。这是今天最常见的做法。
答案 1 :(得分:0)
我的问题实际上并不在
中$myDate = date("Y/n/j",strtotime(str_replace('/','-',$data[0])));
$import->bindParam(1, $myDate, PDO::PARAM_STR);
线。该行导致错误,但这是因为我将视图添加到
中的层次结构中self.view.viewWithTag
方法。这仍然适用于iOS 9。
我将视图添加到了
viewWillLoad
方法,它适用于iOS8和iOS9
答案 2 :(得分:-1)
如果您使用的是Nibs/XIB
,则问题可能是由于ViewController
未正确初始化造成的。
此问题是由init()
UIViewController
引起的
我也遇到过这个问题,这个问题通过执行此代码片段来修复
required init() {
super.init(nibName: <nameOfYourNib>, bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}