2017-05-06 2 views
1

Swift가 소개 된 이래로 지난 몇 년간 개발하지 않아 Xcode 6에서 Xcode 8.2로 업그레이드했습니다. 이제는 Apple의 Swift 놀이터와 Github의 모든 Swift 2.3 오픈 소스 프로젝트를 포함하여 인터넷에서 다운로드 한 모든 프로젝트가 컴파일에 실패했습니다. 제대로 스위프트 사용 대상에 대해 Xcode 8 : 대부분의 Swift 프로젝트가 빌드 및 컴파일되지 않습니다.

"사용 레거시 스위프트 언어 버전"(SWIFT_VERSION)가 필요 구성 될 :

먼저 나는 아래의 오류가 발생합니다. [Edit> Convert> Current Swift Syntax ...] 메뉴를 사용하여 Swift 버전을 선택하거나 Build Settings 편집기를 사용하여 직접 빌드 설정을 구성하십시오.

: 나는 예에 속성 편집기에서 값을 설정하는 것입니다 유래에 다른 답변, 당을 고정 할 때

, 나는 같은 항상 모든 프로젝트에 대해 서로 다른 각종 스위프트 컴파일러 오류를 얻을 래핑되지 않은 옵션 값

'UITableViewCell?'의 다운 캐스트 'UITableViewCell'은 옵션을 언랩합니다. '!'를 사용하셨습니까?

목표 - C 방법 '파서 : didStartElement : 이름 공간 URI : qualifiedName가 : 속성 :'방법으로 제공 didStartElement : 파서 ​​( '옵션 요구 방법 충돌'파서 (: didStartElement : 이름 공간 URI : qualifiedName가이 :) 속성 '을 : namespaceURI : qualifiedName : attributes :) '프로토콜에서'NSXMLParserDelegate '

내가 잘못하고 있나? 지금까지 Xcode에서 만든 빈 탭보기 응용 프로그램과 GitHub에서 다운로드 한 새로운 Swift 3.2 응용 프로그램을 제외한 다른 응용 프로그램을 실행할 수 없었습니다.

답변

0

잘못된 것은 아닙니다. Xcode 8은 swift 2.3 또는 3.x에서만 작동합니다. 기본적으로 swift 3으로 컴파일됩니다. 이것은 당신이 보는 오류의 원인입니다.

는 옵트 인 스위프트 2.3보다는 스위프트 3.

에 YES로 설정을 전환, 바로 올바른 빌드 설정을 찾기 위해 프로젝트의 빌드 설정에 드롭하고 기존의 신속한 검색, 빠른 2.3 컴파일하려면

enter image description here

일부 컴파일 오류는 발생할 수 있지만 신속한 버전의 차이가 더 적기 때문에 훨씬 적습니다.

문제는 타사 라이브러리에서 발생합니다.이 라이브러리는 프로젝트와 동일한 버전의 Swift에 있어야합니다. 따라서 Swift 2.3을 사용하는 경우 Swift 3.0으로 작성된 라이브러리를 사용할 수 없습니다.

즉, 나는 신속하게 3으로 머무르고 오류를 수정하는 것이 좋습니다. 대부분의 경우 xcode가 올바른 구문을 제시하므로 어렵지 않습니다.

관련 문제