본문 바로가기
🍎 iOS/문제해결

SwiftUI: Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value(해결)

by @Eddy 2022. 6. 1.
728x90

Optional관련 에러 중 nil값이 나타났을 때의 오류이다.

내 코드에 이 오류 자체가 왜 나타났을까?를 고민했었다.

알고 보니 당연한 내용인데, 모를 때는 참 답답해..

 

<Optional Error>

Image(uiImage: UIImage(data: info.photoImage ?? self.image)!)에서

 

1. info.photoImage?? self.image는 옵셔널 info.photoImage가 nil이라면 기본값으로 self.image를 호출하겠다는 의미이다.

2. UIImage(data: ...)!는 이미지 데이터를 관리하는 객체인 UIImage에 이미지 데이터 (data:...)를 넣을 것이고, nil값이 없도록 강제하는 !를 사용한 것. 

3. 그럼 nil값이며 기본값 self.image를 호출하는데, nil값이 없어야 하는것 아닌가? 라고 생각했으나, 애초에 self.image가 명확한 값이 없는 nil이었던 것으로 추정된다.

 

 

**22.06.09.(목) 추가**

 

앞서 3번에서 언급했던 nil값의 정체를 알았다.

현재는 수정이 되었으나,

아무런 값이나 이미지가 등록되지 않은 상태에서 create new를 누르게 되면, 아무런 정보가 없는 nil값을 저장하게 되는데.

이 저장된 nil값에 의해 강제언래핑된 Optional과 충돌되어 nil이 존재해서는 안 되는 코드인데 nil이 생성됨으로써 문제가 생긴 것!

 

해결방법으로는 새로운 프로젝트를 생성하여 코드를 옮기고 다시 실행하면 해결된다.

다만, 또 Create new라는 버튼을 다시 누르게 되면 같은 문제에 빠지게 되니 주의하자.

반응형

댓글