2017-06-12 5 views
-1

私のプログラムは、配列からデータをフィッチ、そしてそれは私にEXC_BAD_Instractionスウィフト、EXC_BAD_INSTRUCTION

そして「アタルを与えるcell.DriverX.text = rideTimeでの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 

にそれを置く必要がありますエラー:オプション値 (lldb)をアンラッピングしている間に予期せずnilが見つかりました "エラーが表示されます。

+2

感嘆符が多すぎます。すべての感嘆符は招待状です:*私をクラッシュしてください*。またはコンセントが接続されていない。または、現在のインスタンスがInterface Builderで設計されたインスタンスではありません。 – vadian

+0

DriverXコントロールのコンセントを確認してください。 –

+0

あなたの 'rideTime' varはおそらくゼロです。おそらく 'RidestList'は' indexPath.row'の位置に値を含んでいませんか?ブレークポイントを追加し、行ごとにコードをステップ実行してみてください。エラーを分離したら、エラーを起こしにくいコードを作成するためにオプションを見てください。 – pbodsk

答えて

0
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 
} 

これはあなたの変数rideTimeに来ていない値に問題クラッシュが基本的にある

+0

ガードブロックの戻り値にエラーがあります –

+0

編集済み私の回答 – Muhammed

0

であなたを助けることができます。ベストプラクティスはオプションのバインディングの使用ですvar rideTime:String?をnull値を期待できる変数に追加します。これはあなたが直面したクラッシュを制限します。

+0

*ベストプラクティスは、文字列変数をオプションではないと宣言することです。これはこの種のクラッシュをまったく避けます。 – vadian

関連する問題