IT/Swift

Thread 1: Signal SIGABART의 고찰

종금 2017. 11. 26. 22:58
반응형

Thread 1: Signal SIGABART


스위프트로 프로그래밍을 하다보면 자주보는 에러이다.


분명 빌드는 성공하는데 시뮬레이터로 런타임시에 앱의 화면이 하얀색으로만 표시되기 떄문이다.


이때 확실한 것은 하나이다.


"코딩한 내용에 대해서는 문제가 없다."


만약 코딩에 문제가 있었다면 분명 컴파일 성공 전에 빨간줄로 분명 경고창을 Xcode가 띄었을 것이다.


 

우리가 흔히 접하는 코딩에러


하지만 빌드가 아래와 같이 분명 성공하는데


 

뿌듯함의 상징


실행이 되지 않는다. 아래의 화면과 같이 


왜 UI가 안뜨니..

 


좌절의 시그널...




진짜 처음 코딩 시작했을 때는 위 글자가 보이면 처음부터 다시 ui만들고 코드 한줄 한줄 적으며 실행을 했었다.

(똑같은 UI, 똑같은 코드인데 다시 작성하면 Thread가 사라지고 실행이 되었었다.)

그뒤로는 코드가 길어지면서 다시 작성하기가 너무 싫어서 구글링을 해보아도 이유가 너무 다양해서 포기했다.


다만 알 수 있던 것은 두가지였는데


첫번쨰는 Main.storyboard 파일에서 ui작성시에 thread1의 에러가 발생한다는 것이고


두번째는 target output을 보면 어떤 쓰레드 오류인지 알 수있다.


 

 

위의 에러를 보면 다음과 같은 에러 코드와 함께 에러에 대해 알려준다.


One of the two will be used. Which one is undefined.


두가지가 한곳에 사용되었으며 하나는 정의되지 않았다.


그렇다면 어찌 두가지를 사용하는지 알 수 있을까


답은 의외로 간단했다.


Main.storyboard에 가서 해당 ui의 속성을 가면된다.


 


위의 노랑 동그라미를 누르면 해당 컨트롤러의 속상 창을 볼 수 있다.


 



속성창에서 보면 마지막 text 파일이 link가 안되있는 것을 볼 수 있다 


또한 표시는 안되지만 같은 textfield 파일이 두번 코딩에 사용되었다.


즉 'One of the two will be used. Which one is undefined.'의 에러처럼


한 텍스트 필드가 두번(One of the two will be used) 사용되었고 또한 마지막 텍스트 필드는(which one is undefined)는 정의되지 않았기에


빌드자체는 문제 없지만 화면에서 출력하는 과정에서 쓰레드1로 에러가 표시된 것을 볼 수 있다.













반응형

'IT > Swift' 카테고리의 다른 글

AppDelegate & ViewController  (0) 2017.12.10
스위프트 가이드 ver.2  (0) 2017.11.11
Swift 가이드 ver.1  (0) 2017.11.09