import UIKit
class mbtiViewController: UIViewController {
@IBOutlet weak var inpfImages: UIImageView!
var images: [UIImage] = [] //변수에 배열 선언
var count = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let images = [
UIImage(named: "infp01")!,
UIImage(named: "infp02")!,
UIImage(named: "infp03")!
] //상수로 설정하여 배열을 확실히 함
}
@IBAction func didMyTapBtn(_ sender: Any) {
inpfImages.image = images[count]
coun = +1
이렇게 이미지를 배열화 시켜서 버튼을 탭할 때마다 이미지가 바뀌도록 하였는데... 초기 이미지가 아예 안 뜨고 이미지 세 장이 다 나온 다음 다시 앞으로 가는 것이 안 되는 문제가 발생하였다.

알아보니 이런 문제가 우선 있었고, 다시 보니까 진짜 내가 변수를 두 번이나 선언했다... 바보 ㅜ
초기 이미지가 뜰 수 있도록 images 배열이 비어있지 않을 경우 첫 번째를 imgaeView로 지정하게 만들기
버튼을 눌렀을 때 count가 배열의 길이를 초과하지 않도록 계산하여 순환하게 만드는 것

그런데 또 오류가 발생했다 images.count 부분에서 'Fatal error: Index out of range'라는 오류...... 알아보니까 배열 인덱스가 배열의 범위를 벗어날 때 발생 하는 오류였다.
분명 배열의 길이를 초과하지 않도록 계산하여 순환을 시키는데 왜지...?
이미지 배열이 초기화가 안 된 경우란 것을 알게 되었고
기존에 강제 언래핑을 했던 부분을 지우고 안전하게 다시 진행하였다.
count에 계속 +1 값이 들어가서 이미지에 있는 인덱스를 계속 끌어오는데
내가 올린 이미지는 3장이라 인덱스 값이 0~2뿐만이라 옵셔널로 된 nil이 없어서
강제 종료가 되는 것이었다.

다시 배열 초기화를 안전하게 상수로 뽑아서 지정 완료... 나는 그냥 한 곳에서 이미지를 넣으면 전부 적용할 수 있도록 만들고 싶었는데 너무 아쉽다.
월요일이 찾아오면 튜터님에게 찾아가서 질문을 해보아야겠다.