【问题标题】:Swift, EXC_BAD_Instruction斯威夫特,EXC_BAD_Instruction
【发布时间】:2017-11-13 19:30:54
【问题描述】:

我的程序应该从数组中获取数据,并将其放入 tableView 中

 var rideTime: String!
    var rideLocation: String!
    var RideDriver: String!

    rideTime = RidestList[indexPath.row].TimeX!
    rideLocation = RidestList[indexPath.row].LocationX!
    RideDriver = RidestList[indexPath.row].DriverNameX!


    cell.DriverX.text = rideTime;
    cell.TimeX.text = rideLocation;
    cell.LocationX.text = RideDriver;

    return cell

在 cell.DriverX.text=rideTime 它给了我 EXC_BAD_Instraction

还有一个“atal 错误:在展开 Optional 值时意外发现 nil (lldb)" 出现错误,谁能帮忙?

【问题讨论】:

  • 感叹号太多。任何感叹号都是邀请:please crash me。或者插座没有连接。或者当前实例不是Interface Builder中设计的实例。
  • 检查DriverX控件的出口。
  • 您的 rideTime 变量可能为零。也许RidestList 不包含位置indexPath.row 的值?尝试添加断点并逐行遍历您的代码。隔离错误后,请查看可选项以使您的代码不易出错。
  • 不要太用力展开范例。而是使用 guard 和 if..let 语句。

标签: ios arrays swift word-wrap


【解决方案1】:

崩溃基本上是由于您的变量 rideTime 没有值。最佳实践是使用可选绑定 var RideTime: String? 到可以预期空值的变量。这将限制您面临的崩溃。

【讨论】:

  • 最佳实践是将字符串变量声明为非可选,这样就完全避免了这种崩溃。
【解决方案2】:
    if let ride_time = RidestList[indexPath.row].TimeX
    {
       cell.DriverX.text = ride_time
    } 

 if let ride_location =RidestList[indexPath.row].LocationX 
    {

       cell.TimeX.text = ride_location
}

 if let river_driver =RidestList[indexPath.row].DriverNameX
    {

       cell.LocationX.text = river_driver
}

这可以帮助您解决问题

【讨论】:

  • 编辑了我的答案
猜你喜欢
  • 2014-09-11
  • 1970-01-01
  • 2017-07-22
  • 2017-03-24
  • 1970-01-01
  • 2016-02-08
  • 2015-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多