하면 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 + " 이다.
댓글 없음:
댓글 쓰기