2016-11-26 1 views
1

Swift 2에서 3으로 프로젝트를 변환하려고하는데 다양한 문제에 직면하고 있습니다.Xcode 8 및 Swift 3의 해결되지 않은 식별자 오류

우선 코드를 자동으로 변환하기위한 Xcode 8 빌트인 마이그레이션 도구를 사용했지만 변환 후에 IDE에서 많은 변수를 보여줍니다. 예를 들어 변수 유형을 NSURL에서 URL I로 변경했을 때 "Unresolved identifier 'URL'"을 가져오고 Date, Bundle, DispatchQueque와 같은 다른 유형도 발생합니다. (재단을 가져 왔습니다.)

기타 오류 유형은 예를 들어 "UIImagePickerControllerSourceType에는 멤버가 없습니다 '카메라' "라고 표시되지만 documentation에서 확인하는 것이 옳습니다. URL, 날짜, DateFormatter :

func createFileUrl() -> URL { 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "yyyy-MM-dd_HH-mm-ss" 

     let fileName: String = dateFormatter.string(from: Date()) + (".m4a") 
     let filePath: String = getCacheDirectory() + ("/\(fileName)") 

     self.recordedAudioUrl = URL(fileURLWithPath: filePath) 
     return self.recordedAudioUrl 
    } 

오류가 여기에 해결되지 않은 식별자 :

여기에 코드 조각이있다.

또 다른 큰 문제는 이전 코드 줄에서 Xcode가 오류를 강조 표시하고 있고 코드를 변경하면 (예 : 줄을 삭제하는 것 등) 오류가 사라지지 않는다는 것입니다.

비슷한 문제가 있습니까? Swift에 익숙하지 않지만 내 Xcode가 제대로 작동하지 않는 것 같습니다.

편집 : 나는 해결책을 발견, 내 코드는 빌드 설정에서 자동으로 생성 이클립스 모델링 도구, 난 그냥 추가 SWIFT_VERSION = 3.0이며 많은 오류가있는 경우 지금 모든 가능성,

+0

Swift 3 (Swift 2.3이 아님)으로 업데이트 했습니까? 프로젝트 (⇧⌘K) – vadian

+0

Xcode를 닫고 다시 닫으십시오. –

+0

나는 아무것도 바꾸지 않은 채 여러 번 열어 보았습니다. 스위프트 3으로 업데이트했습니다. 프로젝트 정리 : 정리에 실패했습니다. –

답변

0

잘 간다 당신이 코드를 해보았을 때 1} 중괄호가 빠졌고 날짜, URL 및 DateFormatter에 문제가 없습니다.

프로젝트를 실행하고, 다시 열고, 정리하고, Mac을 다시 시작하십시오.

관련 문제