collectionView에서 셀에 이미지 표시하기

안녕하세요 코더스하이!

먼저 문제가 있는 부분의 코드 이미지를 올릴게요!

콜렉션뷰에서 셀에 이미지를 표시하고자 하는데요,


let projects = ["project_01", "project_02", "project_03", "project_04", "project_05"]

라는 프로젝트 이름 어레이가 있고, 이와 동일한 이름의 이미지 파일들이 Assets에 있는 상태입니다.

viewDidLoad에 초기화 되기 전에 이미지 이름을 가져오면 안될 것 같아서,


var thumbnail: [UIImage?] = []

로 빈 배열을 만들고


func getThumbnail(){
              for name in projects{
            thumbnail.append(UIImage(named: name))
        }
    }

이란 함수로 프로젝트 이름(이미지 이름)을 가져오게 만든 다음,

viewDidLoad에 getThumbnail 함수를 실행시켰습니다.

그리고 마지막 콜렉션 뷰 함수에서


cell.projectThumbnailImage.image = thumbnail[indexPath.row]

을 적어줬는데 이 부분에서 자꾸 이미지가 nil이라고 에러가 나네요ㅠㅠ
(Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value)
좋아요 1

안녕하세요, 먼저

viewDidLoad에 초기화 되기 전에 이미지 이름을 가져오면 안될 것 같아서,

이거 괜찮아요. 이미지 이름은 그냥 문자열일 뿐이고, 이미지를 가지고 오는 것 까지는 괜찮습니다.
ImageView에 이미지를 넣는 부분만 조심하면 돼요.

진단을 해 봐야 할 부분이,

  1. 브레이크 포인트를 잡아서 콜렉션 뷰 함수가 호출되기 전에 getThumbnail 이 확실히 호출되는지 확인

  2. getThumbnail을 통해 thumbnail 배열에 이미지 배열이 잘 들어가는지 확인

  3. Optional 이미지를 unwrap 하지 않고 이미지뷰에 바로 넣은 것 수정.

정도를 해 보면 되겠네요.

좋아요 1

셀의 이미지 뷰 아웃렛 연결을 확인해보세요.

아웃렛을 만든 이후 연결이 끊어져있으면 아웃렛 프로퍼티는 런타임에 nil이 됩니다.

좋아요 1