2016년 6월 9일 목요일

XCode swift "Command failed due to signal: Segmentation fault: 11 해결 방법

XCode swfit 컴파일러가 컴파일중에 세그먼테이션 폴트가 발생하면 어떻게 해결 해야 하는가?



어떤 라인이 문제가 있는지 어떤 코드가 문제인지 찾아 주지도 못한다.

심지어 이런 상황에서 버그를 리포트 하라고 에디터 상단에 아래와 같은 화면이 표시 되기도 한다.




에디터는 신텍스 하이라이트가 실행 되지 못하고 모든 텍스트가 흑백으로 표시 될때도 있다.





XCode의 버젼은 7.3.1이다.


문제의 코드는 위에 주석처리 한 코드 아래의 코드가 문제를 일으키는 코드이다.

recentlAddr은 아래와 같이 선언 되어 있다.

var recentlAddr = [[String:AnyObject]]()

if 문으로 바로 비교를 들어가면 Xcode swift 컴파일러가 문제를 일으키는 것으로 보인다.

더많은 케이스가 있겟지만 내가 찾은 케이스는 이런 경우 이다.

위에 올바른 코드와 같이 

func bookmarkButtonClick(sender : UIButton) {
        let bookmark = self.recentlAddr[sender.tag]["bookmark"] as! String
        
        if bookmark == "1" {
            return
        }
        recnetTobookmark(sender.tag, bookMarkType: 3)
    }

이렇게 수정하면 아무런 문제 없이 컴파일이 잘되고 문제가 없다.

결론
 XCode 컴파일러의 Segmentation fault 11이 발생하면 그래도 코드를 유심히 찾아 봐라!

댓글 없음: