UI1:Swift 2中的EXC_错误访问(代码=1,地址0x…;)
当我想从valise生成数据时,表视图控制器(SelectedCity)、应用程序崩溃和错误:Thread1:EXC_BAD_ACCESS(代码=1,地址0x…) 错误在UI1:Swift 2中的EXC_错误访问(代码=1,地址0x…;),swift,Swift,当我想从valise生成数据时,表视图控制器(SelectedCity)、应用程序崩溃和错误:Thread1:EXC_BAD_ACCESS(代码=1,地址0x…) 错误在labelcity!行中!。text=titvaribale tit没有问题,我认为问题在于UIlabel(labelcity) 你能帮我吗 飞机搜索 选定城市视图 而不是 @IBOutlet weak var labelcity: UILabel? = UILabel() 尝试: 考虑删除属性声明中的弱关键字。使用此关键字会
labelcity!行中!。text=tit
varibale tit没有问题,我认为问题在于UIlabel(labelcity)
你能帮我吗
飞机搜索
选定城市视图
而不是
@IBOutlet weak var labelcity: UILabel? = UILabel()
尝试:
考虑删除属性声明中的弱关键字。使用此关键字会阻止刚创建的UILabel对象保留它,因此该对象会立即解除分配
var labelcity: UILabel? = UILabel()
或者另一个选项是将对象实例化移动到viewDidLoad方法中:
var labelcity: UILabel!
...
override func viewDidLoad() {
super.viewDidLoad()
let label = UILabel()
//you code for subview adding into view controller's view
labelcity = label
GetPassCity()
}
我解决了这个问题:
override func viewDidLoad() {
super.viewDidLoad()
labelcity.text = tit
GetPassCity()
}
func sendNameToPreviousVC(SelectCity: String) {
tit = SelectCity
}
你声明变量“tit”(这会在不成熟的读者中引起很多乐趣)不是问题所在,所以这显然是我怀疑的。不,我测试没有tit,但没有解决这可能听起来很傻,但你真的在视图中将IBOutlet结合了吗?此外,
UILabel()
也是冗余的。它已经是可选的,并且已经启动,因此不会因查找nil值而崩溃。当然,除非你用打开它代码>你做的。在界面生成器中标签是否正确连接?@vadian是。它已连接此答案将解决您的问题您正在从故事板连接标签,对吗?删除标签的插座并重新连接。从项目中删除代码时,还必须从情节提要中的标签中删除实际连接。您可以通过在标签上单击鼠标右键(控制单击)并删除白色连接来完成此操作。重新连接时,请确保选择“outlet”作为连接类型。您是否解决了此问题?您是否尝试删除属性声明中的弱关键字?
var labelcity: UILabel? = UILabel()
var labelcity: UILabel!
...
override func viewDidLoad() {
super.viewDidLoad()
let label = UILabel()
//you code for subview adding into view controller's view
labelcity = label
GetPassCity()
}
override func viewDidLoad() {
super.viewDidLoad()
labelcity.text = tit
GetPassCity()
}
func sendNameToPreviousVC(SelectCity: String) {
tit = SelectCity
}