Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UI1:Swift 2中的EXC_错误访问(代码=1,地址0x…;)_Swift - Fatal编程技术网

UI1:Swift 2中的EXC_错误访问(代码=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() 尝试: 考虑删除属性声明中的弱关键字。使用此关键字会

当我想从valise生成数据时,表视图控制器(SelectedCity)、应用程序崩溃和错误:Thread1:EXC_BAD_ACCESS(代码=1,地址0x…) 错误在
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
        }