Xcode 7.3 자동 완성은 너무 실망 스럽습니다.


96

Xcode에는 새로운 자동 완성 기능이 있습니다. 아마도 이름의 시작 등을 확인하기 때문에 유용 할 것입니다.하지만 클래스 이름이나 const 이름 등을 전혀 찾지 못하는 경우가 자주 있음을 발견했습니다. 전체 이름을 직접 입력해야합니다. 전반적으로 그것이 내 인생을 더 힘들게 만들고 코딩에 더 많은 시간이 소요된다는 것을 알았습니다. 예전 방식으로 전환 할 수있는 방법이 있습니까?


7.3을 베타로 처리 한 사용자는 몇 주 동안 이에 대해 불평했습니다. stackoverflow.com/questions/35586056/…
matt

developer.apple.com/downloads 에서 이전 xcode를 수동으로 다운로드 할 수 있습니다 . 예 : xcode 7.2.1 : adcdownload.apple.com/Developer_Tools/Xcode_7.2.1/…
George

43
나는 그들이 자동 완성이 깨진 것만 큼 중요한 것을 가진 주요 릴리스를 내놓았다는 것을 믿을 수 없습니다. 실제로 Apple의 아무도 개발을 위해 Xcode를 사용하지 않는 것과 같습니다.
솔레

3
이로 인해 생산성이 너무 낮아서 Xcode 7.2.1로 되돌려 실제로 정상적인 개발 속도로 돌아갈 수 있습니다. 나는 보통 이것으로 애플에 대해 더 짜증이 난다. 그들은 Xcode 7.3을 실행하기 위해 El Capitan으로 가도록 강요했을뿐만 아니라 거기에 도착했을 때 약속 된 땅이 현실과 거리가 멀다는 것을 알게되었습니다. 이 물건을 전혀 테스트합니까? 그 어느 때보 다 '그들의'개발자에 대한 전형적인 무례 함.
Quintin Willison

2
Xcode 7.3.1이 어제 출시되었습니다. 테스트 후에도이 버그는 여전히 존재합니다.하지만 Apple은 7.3.1에서 수정했다고 말합니다.
Vincent Sit

답변:


18

Xcode 7.3.1

  1. Xcode> 환경 설정> 텍스트 편집에서

    선택 취소 Enable type-over completions

  2. Xcode 다시 시작


14

XCode-> Preferences-> Text Editing에서 "Enable type-over completes"체크 박스를 지우는 것이 트릭을하는 것 같습니다. 적어도 제 경우에는 자동 완성이 일종의 예전 방식으로 돌아 갔기 때문에 그 전에 수동으로 입력해야했던 클래스 이름을 자동 완성 할 수있었습니다.


시도했지만 여전히 클래스 이름을 제대로 완료하지 못했습니다.
Erik B

차이가 보이지 않습니다. 여전히 사용자 정의 이름을 완료해야합니다 ... :(
matthewfx 2016-04-15

이 작업을 수행하려면 인덱싱을 켜야합니다. 인덱싱을 켜려면 Xcode 내에서 할 수 없습니다. 쉘에서 다음 행을 실행해야합니다. 그런 다음 Xcode를 다시 시작하십시오. %는 기본적으로 com.apple.dt.Xcode IDEIndexDisable보고 삭제 stackoverflow.com/questions/7328041/...
andrewz

5

이것은 결코 적절한 해결책은 아니지만 지난 며칠 동안 (간신히) 제 정신을 유지할 수있게 해주었습니다. 매 빌드 후에는 파생 데이터 폴더를 폐기해야합니다. 이 폴더는에서 찾을 수 있습니다 Xcode > Preferences > Locations > Derived Data. 모든 것을 버리면 적절한 자동 완성 기능을 복원해야하는 재 인덱싱 단계가 시작됩니다. 불행히도 빌드하면 자동 완성 동작이 깨진 상태로 되돌아갑니다.


4

Xcode 파생 데이터 폴더를 열고 폴더를 삭제하십시오.

/Users/yourUserName/Library/Developer/Xcode/DerivedData

그런 다음 Xcode를 다시 시작하면 자동 완성이 매력처럼 작동합니다.


이것은 나를 위해 일했으며 왜 부정적인 평가를 받았는지 모르겠습니다.
Mike M

1

자동 완성의 일부 '부분'이 잠시 후 실패한다는 인상이 있습니다. Mac을 다시 시작하여 다시 작동합니다. 그러나 때로는 곧 다시 실패합니다. 다시 시작과 결합 된 @Alex Bykov의 대답이 트릭을 수행 할 수 있습니다.

어쨌든 : Xcode의 자동 완성은 항상 쓰레기였습니다. AppCode를 사용하여 훨씬 개선했습니다. 불행히도 아직 신속하지 않습니다.


1

Xcode를 닫고 Xcode를 열고 색인을 생성하면 작동했습니다.


1
슬프게도 유일한 선택입니다.
thedp

0

클래스 이름을 찾지 못함

해결 방법으로 Command + Shift + KCommand + B를 여러 번 눌러보십시오 . 일시적으로 작동합니다.


1
나요 Cmd를 + Shfit + K (청소), Cmd를 + Shfit + 수신 거부 + K (클린 빌드 폴더), 삭제, 엑스 코드를 폐쇄 ~/Library/Developer/Xcode/DerivedData, OS X을 다시 부팅하고, 여전히 도움이되지 않았다. :-)
TaylanUB

1
처음부터 컴파일하는 데 20 분이 걸리는 꽤 큰 프로젝트가 있으므로 정리하고 다시 빌드하는 것은 옵션이 아닙니다 ...
longbow

0

Xcode 7.3.1

며칠 후 우리가 알게 된 또 다른 가능한 이유를 공유하겠습니다. 우리는 여러 스키마를 가지고 있으며 그중 하나에서 브리징 헤더 는 더 이상 존재하지 않는 파일을 가져 왔습니다 . 따라서 컴파일 및 실행 중 (헤더가 다른 체계에 속함) 중단되지 않았지만 자동 완성이 중단되었습니다 (objective-c 클래스를 찾을 수 없음).

누군가를 도울 수 있기를 바랍니다!


0

다른 방법을 시도한 후 :

  • 파생 데이터 삭제
  • 빌드 설정에서 모듈 활성화 해제
  • 완전 청소
  • 다시 시작

이것은 효과가 있었다 :

  • 파일에서 @end 뒤에 주석 처리 된 (/ * abc * /) 코드를 찾아 삭제합니다.

Max_B에 대한 크레딧 : https://forums.developer.apple.com/thread/7439

제 경우에는 다른 프로젝트가 올바르게 자동 완성되었습니다. 모든 프로젝트가 코드를 올바르게 예측하지 못하면 다른 문제 일 수 있으며 다른 답변이 작동 할 수 있습니다.


-1

OS X 앱을 만드는 동안이 문제가 발생했고 Xcode 7.3 문서와 OS X 10.11.4 문서가 실제로 다운로드되었는지 확인하여이 문제를 해결할 수있었습니다. 이렇게하면 자동 완성 기능이 완전히 복원되었습니다. 내 전체 지침은 다음과 유사한 질문에 대한 답변입니다. https://stackoverflow.com/a/39420664/3444925

나는이 문제를 직접 겪었고 이것에 대한 다른 모든 유사한 질문과 답변을 살펴본 후에도 해결책을 찾을 수 없었습니다. 그러나 마침내 나는 나를 위해 일한 것을 발견했습니다.

로 이동하십시오 Xcode -> Preferences -> Components. 아마 다음과 같은 화면이있을 것입니다.

여기에 이미지 설명 입력

이는 문서가 다운로드되지 않았으므로 문서를 다운로드하지 않고 애플리케이션을 다시 색인화하거나 다시 빌드하려고하면 자동 완성 기능을 사용할 수 없음을 나타냅니다.

Xcode 7.3 문서와 OSX 10.11.4 문서를 다운로드 한 후에는 자동 완성 기능을 다시 가져 오기에 충분했습니다. ).


외부 리소스에 대한 링크가 권장되지만 링크 주변에 컨텍스트를 추가하여 동료 사용자가 그것이 무엇이며 왜 거기에 있는지 알 수 있도록하십시오. 대상 사이트에 연결할 수 없거나 영구적으로 오프라인 상태가되는 경우 항상 중요한 링크에서 가장 관련성이 높은 부분을 인용하십시오.
pableiros

방금 여기에 블록 인용문으로 전체 답변을 추가했습니다 @pableiros
jkunzika

-1

몇 개의 새 클래스 파일을 만들 때까지이 문제를 겪지 않았습니다. 다른 클래스는 잘 작동했지만 자동 완성은 새 파일의 어떤 것도 작동하지 않습니다.

FIX (나를 위해)-아직 사용하지 않았지만 단위 테스트 대상을 포함한 모든 대상에 해당 파일을 추가해야했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.