Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)~
Swiftでの配列の書式とコードを紹介します。
空で初期化する場合は下記の書式を利用します。
var 配列変数名:[型名] = []
var 配列変数名 = [型名]()
宣言時に初期値を代入する場合は下記の書式を利用します。
var 配列変数名:[型名] = [要素1の値, 要素2の値, 要素3の値, .... 要素nの値]
一律の初期値を設定する場合は下記の書式も利用できます。
var 配列変数名:array<型名>(count:要素数, repeatedValue:要素の値)
配列の要素に代入をする場合は、代入する要素を大かっこ"[", "]"で囲み添え字で指定します。
代入は = 演算子を利用し左辺に代入される配列の要素を記述し、右辺に代入する値を記述します。
配列変数名[配列番号] = 代入する値
配列の要素の参照は要素を大かっこ"[", "]"で囲み添え字で指定します。
配列変数名[配列番号]
Int型の配列 arr を空の配列として宣言します。
var arr:[Int] = []
Int型の配列intArr を空配列で宣言します。
var intArr = [Int]()
Int型のvalues配列を宣言し、最初の要素から順に 40, 30, 20, 10 を初期値として代入します。
var values:[Int] = [40,30,20,10]
String型のvalues配列を宣言し、最初の要素から順に "Apple", "Orange" を初期値として代入します。
var values: Array<String> = [ "Apple" , "Orange" ]
Int型のvalues配列を宣言し、配列の長さを10とし、すべての要素を0で初期化します。
var values = Array<Int>(count:10, repeatedValue:0)
XcodeでiOSのSingle View Application を作成します。
下図のUIを作成します。ButtonとTextViewを配置します。ButtonのTouchDownイベントとTextViewをコードに宣言します。
//
// ViewController.swift
// ArrayDemo
//
// Created by Penta on 2016/03/01.
// Copyright c 2016年 iPentec. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textView1: UITextView!
var data : Array<String> = ["ペンギン", "らくだ", "カルガモ", "ヤンバルクイナ", "ペリカン"]
override func viewDidLoad() {
super.viewDidLoad()
textView1.text=""
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func onButtonTouchDown(sender: AnyObject) {
data[2]="トナカイ"
data[3]="しろくま"
for s in data {
textView1.text = textView1.text + s + ", "
}
}
}
"data"の名称で配列を宣言します。配列の宣言時に値の代入もしています。
ボタンがタップされると onButtonTouchDown メソッドが実行されます。メソッド内で配列の[2]と[3]の要素に別の値を代入して配列の値を変更しています。その後、for ループでTextViewに配列の値を表示します。
プロジェクトを実行します。下図の画面が表示されます。
画面上部のボタンをクリックします。TextViewに配列の値の一覧が表示されます。onButtonTouchDown メソッドでコードで配列の値を変更後の値がが目に表示されていることが確認できます。
Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)~