2016년 4월 14일 목요일

swift 2.0 code to swift 2.2

겨울 내내 작업한 프로젝트 xcode 7.3으로 업그레이드를 해야 하나 말아야 하나?
하면 swift 2.0에서 2.2로 변경되면 어떤 일들이 벌어지나?

대충 100여개의 워닝이 발생 하는데

주로 for 문 과 selector 관련 구문이다.

action: 에 연결한 함수이름 "" 가 모두 워닝이 나더라

아래의 코드 처럼 xcode 에서 자동으로 더블클릭 하고 fix it 눌러주면 #selector()  속에 클래스이름의 이벤트 함수로 변환되서 잘 된다.
let keypadDoneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "pointDoneClick")
to
let keypadDoneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(PaymentViewController.pointDoneClick))

C style for문은 swift 3.0에서 아에 못 쓰게 된다. 그래서 워닝이 잔뜩 난다.
나처럼 올드한 C개발자 출신이 주로 이용하는 코드들이라서리..
다음과 같이 변환 하면 {이하는 바꿀 필요 가 없다. 

for (var i=0; i < payButtons.count ; i++ ) {
            payButtons[i].enabled = enabled
}

to

for i in 0 ..< payButtons.count {
            payButtons[i].enabled = enabled
}


 그리고 tip  하나 투척 cmd + b로 빌드를 해보면 swift 2.2에서 엄청나게 많은 워닝이 쏟아지고
대부분 이렇게 selector 관련 워닝일경우 자동으로 xcode 에서 수정 해줘도 무방 할 경우는 

다음의 단축키가 유 용 하다.


cmd + ' 은 다음 워닝이고
cmd + "" 는 이전 워닝

Ctrl + Cmd + ' 은 다음으로 넘어가면서 이러한 워닝을 2.2 코드에 맡게 변환해 준다.

반대로 이전으로 넘어가면서 변환은 Ctrl + Cmd + " 이다.


댓글 없음: