Swift1.2 - Swift 2.0으로 자동 변환할 수 없는 오류 대응(Xcode 7+Swift2)
Xcode7.1로 업데이트하면 위의 대화상자가 표시됩니다.
보아하니, Swift1.2를 계속 쓸 수 있는 옵션이 없어 간신히 대처할 수밖에 없었는데....《김원일, 불의 제전》
컨디션
항목
구형
신제품
OS
Yosemite(10.10)
El Capitan(10.11)
Xcode
6.4
7.1
Target iOS
8.2
9.1
Swift
1.2
2.0
실천하다
엑스코드 베타를 착실하게 쫓는 사람은 스위프트2다.나는 0의 문법을 조금씩 다시 써서 천천히 넘어갔다고 생각한다.
하지만 저처럼 xcode의 정식 버전이 나온 다음에 대응하고 싶은 분들은 xcode 자체의 업데이트, iOS의 업데이트, Swift의 업데이트 3개가 겹쳐서 수십 개의 오류와 경고가 나왔잖아요.
자동 변환 박스
새로 추가된 언어 사양
반환값을 통해 유형을 뚜렷하게 볼 수 있다
// 1.2
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath) as! UITableViewCell
return cell
}
// 2.0
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath)
return cell
}
기타
자동 변환은 없지만 QuickFix가 유효한 경우
var에서 let까지
sample_2_1.swift
// 1.2
var iconNum:Int = 2
// 2.0
let iconNum:Int = 2
자동 변환할 수 없는 오류 및 대응
직접 대답할 수는 없지만, 어떤 메시지가 어떤 이유로 나타나는지 상상할 수 있을 것 같다.
Value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'?
// 1.2
var title:String = textField.text
// 2.0
var title:String = textField.text!
Use of unresolved identifier 'EKEventEditViewActionCanceled'
EKEventEditViewDelegate
// 1.2
EKEventEditViewActionCanceled.rawValue
// 2.0
EKEventEditViewAction.Canceled.rawValue
// 2.0
enum EKEventEditViewAction : Int {
case Canceled
case Saved
case Deleted
static var Cancelled: EKEventEditViewAction { get }
}
Redundant conformance of 'HogeMainViewController' to protocol 'AdViewDelegate'
// 1.2
class HogeMainViewController: HigeViewController, AdViewDelegate, UIScrollViewDelegate, WSCoachMarksViewDelegate {
}
// 2.0
class HogeMainViewController: HigeViewController, UIScrollViewDelegate, WSCoachMarksViewDelegate {
}
Nil is not compatible with expected argument type '()'
sample_3_4.swift
// 1.2
item.managedObjectContext!.save(nil);
// 2.0
item.managedObjectContext!.save();
Reference
이 문제에 관하여(Swift1.2 - Swift 2.0으로 자동 변환할 수 없는 오류 대응(Xcode 7+Swift2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/m1takahashi/items/7050ed391f9c5700d99d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)