2017-05-17 13 views
0

オブジェクトの配列を作成しましたが、配列の初期化時にこの神経の折れ曲がりエラーが発生しました。exc_bad_instructionエラー(配列スウィフト)

import Foundation 
import UIKit 

class question{ 

var image = UIImage() 
var q1: String = "a" 
var q2: String = "b" 
var q3: String = "c" 
var q4: String = "d" 
var q = ["a","b","c","d"] 

static let shared = question() 

} 

let quest: [question] = [] 


func set(){ 

quest[0].image = #imageLiteral(resourceName: "Screen Shot 2017-05-15 at 4.14.27 PM.png") 
quest[0].q[0] = "Mount" 
quest[0].q[1] = "Sun" 
quest[0].q[2] = "Ground" 
quest[0].q[3] = "Tree" 


quest[1].image = #imageLiteral(resourceName: "Screen Shot 2017-05-15 at 4.15.32 PM.png") 
quest[1].q[0] = "cloud" 
quest[1].q[1] = "lake" 
quest[1].q[2] = "rain" 
quest[1].q[3] = "snow" 


} 

これはviewControllerファイルではなく、私のモデルファイルです。 func "set()"は、viewDidLoadのオーバーライドでViewControllerファイルで実行されます。 EXC_BAD_INSTRUCTIONは最初にquest [0] .imageを初期化するだけですが、//前に追加すると//エラーは次の行に移動します。

+0

'var image = UIImage()'を 'var image:UIImage!'に変更しようとします。 –

+0

イメージを忘れてしまっただけで何も変えません。 – SinaSB

+0

'let quest'を' var quest 'に変更します –

答えて

1

func set(){ 

var tempQuest1 = question() 
quest.append(tempQuest1) 

var tempQuest2 = question() 
quest.append(tempQuest2) 

quest[0].image = #imageLiteral(resourceName: "Screen Shot 2017-05-15 at 4.14.27 PM.png") 
quest[0].q[0] = "Mount" 
quest[0].q[1] = "Sun" 
quest[0].q[2] = "Ground" 
quest[0].q[3] = "Tree" 

quest[1].image = #imageLiteral(resourceName: "Screen Shot 2017-05-15 at 4.15.32 PM.png") 
quest[1].q[0] = "cloud" 
quest[1].q[1] = "lake" 
quest[1].q[2] = "rain" 
quest[1].q[3] = "snow" 


} 

いくつかのものがあります

var quest: [question] = [] 

は、次にような要素を追加しますあなたは訂正する必要があります: 1)あなたのquestionクラスの名前を変更してくださいQuestionにするには、swiftのすべてのクラス(すべての型)を大文字にする必要があります。 2)questionクラスをシングルトンにする必要はありますか?

1

配列questには要素が含まれていないため、quest[0]でアクセスすることはできません。

まず、クエストの配列は変更可能で行いますので、のようなあなたのセットの機能を変更し

let question = question() 

    question.image = #imageLiteral(resourceName: "Screen Shot 2017-05-15 at 4.14.27 PM.png") 
    question.q[0] = "Mount" 
    question.q[1] = "Sun" 
    question.q[2] = "Ground" 
    question.q[3] = "Tree" 

    quest.append(question) 
+0

オブジェクト型 "質問"の配列が必要です。 – SinaSB

+0

@SinaSJ、回答が更新されました。 –

関連する問題