Swift Xcode 인덱스 동결 또는 느림


101

아마도 이것은 내가 그런 성가신 "기능"을 경험하고있는 것일 수도 있습니다.

Xcode 6.0.1에서 Xcode 6.1로 업그레이드 한 후 상황이 변경되었습니다. Xcode 6.1은 프로젝트를 영원히 인덱싱하거나 소스 파일을 컴파일합니다. 이 프로젝트는 큰 프로젝트가 아닙니다. 작업 공간에 Swift 파일과 AWS SDK 2.0 Cocoapods가 포함되어 있습니다. 나는 그것이 전체가 매끄럽게 인덱싱되고 컴파일되는 것을 막아야한다고 생각하지 않는다. Xcode 6.1이 어떻게 작동하는지 확인하기 위해 aws-sdk-ios-samples 몇 개를 사용해 보았습니다.

지금까지 시도한 솔루션 :

  1. 오거나이저에서 "파생 데이터"를 삭제하고 작업 영역을 다시 엽니 다. (고치지 못함)
  2. .xcodeproj 파일에 "Show Package Contents"및 .xcworkspace 삭제 ( Xcode 4-성능 저하 )

불행히도 그들 중 누구도 일하지 않았습니다.

추신 : 프로젝트를 다시 만들어야할까요? 내 컴퓨터 설정 : MacBook Pro (Retina, 13 인치, Mid 2014), 메모리 8GB 1600MHz DDR3, Yosemite. (이 작은 프로젝트를 실행하기에 충분하다고 생각합니다.)



2
별로 도움이되지는 않겠지 만 내가하는 일은 ... xcode 6.x에 시간이 걸리도록하는 것입니다. 내가 싸우면 큰 시간이 걸리므로 xcode 6이 시작될 때까지 기다립니다. 나는 그것이 어리석은 인덱싱을 실행하게했다. 그런 다음 iOS 시뮬레이터를 별도로 시작하고 멍청한 도약판이 나타날 때까지 기다립니다. 마지막으로 프로젝트를 실행할 때 인덱싱이 "일시 중지됨"이라고 말하는 사실을 간과하고 <# godObject #>에게기도하고 커피를 마시고 선 모드로 들어 가려고합니다. 하지만 * 한숨 *, 그것은 거칠다 : / 그리고 나는 xcode 5.1.1을 정말 좋아했다 : |
staticVoidMan 2014

이 대답은 나를 위해 일했습니다. stackoverflow.com/a/33395844/242933
ma11hew28

답변:


72

파일 분할, Xcode 6.2 베타 설치 및 문자열 연결 구문 중단을 포함하여 위의 많은 제안을 시도했습니다. 마침내 나를 위해 한 일은 테스트 데이터에 사용하던 사전 리터럴 선언의 배열을 여러 .append문 으로 분할하는 것이 었습니다 .

// This causes indexing/building to hang...
var test = [ [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ],
             [ "a": false, "b": "c" ] ]

// This works fine.
var test = [ [ "a": false, "b": "c" ] ]
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])
test.append([ "a": false, "b": "c" ])

또한,이 배열의 여섯 번째 항목이 저에게 문제를 일으키는 원인이됩니다. 5 개는 잘 작동합니다.


동일한 솔루션이 사전으로 저에게 효과적이었습니다. 직접 초기화하면 인덱싱이 영구적으로 실행됩니다. init()단계별로 초기화하면 완벽하게 작동합니다. 나도 .xcworkspace파일 을 삭제해야했다는 것을 언급 할 가치가 있다.
jboi 2014-12-22

사전이 관련되지 않은 상태에서 나를 위해 수정했습니다. 선언에 8 개의 요소로 괜찮은 튜플의 배열입니다. 11 개의 요소를 추가로 되돌려 야했습니다. 정확한 중단 점을 찾는 데 신경 쓰지 않았지만 10 배 더 빠르게 빌드됩니다. Mavericks의 Xcode 버전 6.1.1 (6A2008a).
Josh

정확히 6 가지 요소로 문제를 해결했습니다. 5는 괜찮 았습니다.
Justin Lau

이것은 XCode 문제입니까 아니면 컴파일러 문제입니까?
Sljux 2015 년

4
나는 Xcode 7.3에서 229 항목의 배열 리터럴로 이것을 경험했습니다. 그것을 분해하는 대신 Swift가 유형을 유추하도록하는 대신 유형 선언을 추가했습니다. 내가 한 후에 작동했습니다.
Brigham

34

저에게 유일한 해결책은 모든 파생 데이터를 삭제 한 다음 (현재 프로젝트뿐만 아니라 전체 폴더를 정리하는 것입니다) Xcode를 다시 시작하는 것입니다.

  1. Xcode에서 파일 열기 / 환경 설정

  2. 팝업 창의 맨 오른쪽에있는 위치를 클릭합니다.

  3. "/ Users / Mac / Library / Developer / Xcode / DerivedData"옆에있는 작은 화살표 아이콘을 클릭하면 DerivedData 폴더 (이전 프로젝트의 모든 파생 데이터가 포함 된 Xcode 폴더)로 이동합니다. .)

  4. DerivedData 폴더 삭제


1
@TravisM. 단계를 따랐습니까? Window, Organizer, Projects, Delete Derived Data로 이동하면 작동하지 않습니다. 기본 설정을 거쳐야합니다.
ericgu

@ericgu 예,하지만 작동하지 않았습니다. 그래도 문제를 해결했지만 하드 코딩 된 데이터로 사전을 한 번에 초기화하는 것과 관련이있었습니다. 하드 코딩 된 데이터를 한 번에 한 행씩 추가하기 위해 코드를 이동했을 때 정지 / 느린 문제가 즉시 사라졌습니다.
Travis M.

내 컴퓨터의 ~ / Library / Developer / Xcode / DerivedData / 폴더. Xcode의 창> 프로젝트로 이동하여 찾을 수도 있습니다.
Suragch

감사. 이것은 도움이됩니다. "영구 인덱싱"문제는 cocoaPod 버전을 업데이트하고 포드 설치를 실행 한 직후에 시작됩니다.
WKL

11

CocoaPods를 사용하고 있습니까? 나는 오늘 일찍 같은 문제를 만났습니다. (xCode 6.1.1 사용)

문제를 해결하기 위해, 프로젝트 디렉토리 ~/Library/Developer/Xcode/DerivedDataPods폴더 및 <project>.xcworkspace.

그런 다음 터미널을 열고 프로젝트 디렉토리로 이동 한 다음 pod install다시 실행 했습니다.


1
네 저도 그렇습니다. 현재 Xcode는 정상적으로 작동합니다. 그러나 여전히 때때로 sourcekit 충돌 오류가 발생합니다. 내 해결책은 파생 데이터 폴더를 삭제하는 것입니다.
leonard

이것이 다른 사람에게도 효과가 있다는 것을 알게되어 기쁩니다 :). xCode가 CocoaPod Libraries를 색인화하려고 시도하고 어딘가에 붙어있는 것처럼 보입니다.
Michael Schinis

1
Pods 폴더 및 <project> .xcworkspace 파일을 삭제 한 다음 pod install을 다시 실행하면 작동합니다.
KML

9

오늘도 같은 문제가있었습니다. Xcode 6.3.2, 중간 크기의 Swift 프로젝트. 어느 시점에서 인덱싱을 시작했지만 인덱싱이 끝나지 않았습니다. 그 원인이 된 코드는 [String : [String]] 유형의 사전이므로 문자열 배열을 값으로 사용하는 문자열 키 사전입니다. A에서 Z까지의 키가있는이 중 두 개가 있었고이 26 개 항목 각각에는 5-10 개의 문자열이있는 문자열 배열이 포함되어 있습니다.

파생 데이터를 지우는 것은 도움이되지 않았습니다. 그 딕셔너리를 주석으로 처리 한 것만으로 다시 시작되었습니다.

솔직히 말도 안돼! Apple은 Xcode를 수정해야합니다! Swift 프로젝트를 컴파일 할 때 이미 끔찍하게 느리지 만 이와 같은 버그는 눈에 띕니다. 나는 이것으로 내 일을 제대로 할 수 없다!


6

여전히이 문제가있는 사람들을 위해 이것은 개체를 하나씩 입력하지 않아도되는 해결 방법입니다.

// instead of this, which freezes indexing
let keys = [keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM]    

// and instead of this, which is ugly & lengthy
var keys = [KeyboardKey]()
keys.append(keyQ)
keys.append(keyW)
...
keys.append(keyM)

// use this:
var keys = [KeyboardKey]()
keys.appendContentsOf([keyQ, keyW, keyE, keyR, keyT, keyY, ... keyM])

1
와우 ... 똑같은 문제가 있었어요. 감사! Apple에 버그로보고했습니다. 당신이 말한 것을하는 것은 나에게 효과가 없었습니다. 긴 배열을 각각 5 개 이하의 요소가있는 작은 배열로 분리해야했습니다.
ma11hew28

5

저에게는 위의 모든 것을 성공하지 못했습니다. 하지만 내가해야 할 일은 파생 된 데이터 폴더를 삭제 한 다음 다른 임의의 프로젝트를 열고 색인이 생성 될 때까지 기다렸다가 이제 원래 (오작동하는) 프로젝트가 작동하는 것뿐입니다!

개발 세계를 유리하게 만들고 신속한 컴파일러를 오픈 소스로 만드십시오. 그래서 우리는 당신의 무능함으로 인해 방해받지 않습니다.


3

Xcode 버전 7.3 (7D175)을 사용하고 있습니다.

근본적인 문제를 알아 냈을 것 같습니다. 인덱싱 단계에 갇힌 두 가지 경우가 있습니다.

  • 변수에 할당 한 클로저를 만들고 유형 서명을 생략했습니다. xcode에 해당 유형 추론 단계에 문제가 있다고 생각합니다. 내가 올바르게 기억한다면 인수 중 하나는 오버로드 된 생성자가있는 CGPoint였습니다. 내 가설은 내 종결이 주장으로 받아 들일 가능성이 너무 많다는 것입니다.

  • 한 유형의 인스턴스를 반환하는 대신 공통 기본 클래스로 여러 유형의 인스턴스를 반환 할 수 있도록 팩토리 메서드를 리팩토링했습니다. 팩토리 메서드를 사용하는 곳마다 결과 객체를 특정 유형으로 캐스팅해야하는 것 같습니다 (as?를 사용하거나 특정 유형을 허용하는 변수에 할당하여) 다시 유형 추론 단계가 손상된 것 같습니다.

이전 개인이 언급 한 사전 선언도 마찬가지인 것 같습니다. Apple에 버그 보고서를 제출했습니다.


2

6.1로 업그레이드 한 후에도 동일한 문제가 발생했습니다. Xcode는 특정 오류 메시지를 생성하지 않고 컴파일 또는 인덱싱을 중단합니다.

이 문제는 신속한 파일의 긴 표현 중 일부를 여러 개의 짧은 표현으로 분할하여 마침내 해결되었습니다. 내 프로그램의 일부는 다양한 문자열 변수를 결합하여 긴 문자열을 형성합니다. 단일 표현식으로 결합하려는 시도와 더하기 할당 연산자를 사용하려는 시도는 모두 실패했습니다. 다음과 유사한 작업을 수행하여 작동하도록 만들 수있었습니다 (간체).

var a = "Hello"
var b = " "
var c = "World"
var d = "!"
var partA = a + b
var partB = c + d
var result = partA + partB

이 아이디어는 이전 Xcode 버전에서 "표현식이 너무 복잡해서 적절한 시간에 풀 수 없습니다. 표현식을 별개의 하위 표현식으로 나누는 것을 고려하십시오."

도움이 되었기를 바랍니다


예, 감사합니다. 실제로 이런 종류의 제안을 받았습니다. 또한 파일 중 하나의 길이를 1500 줄에서 1200 줄로 줄였습니다. 물론 새 프로젝트를 만들고 모든 파일을 하나씩 가져 왔습니다. 그런 다음 마침내 다시 시작됩니다. 어느 것이 궁극적 인 구원자인지 확실하지 않습니다.
leonard

Swift에서 긴 표현을 나누는 것이 저에게 트릭이었습니다.
MandisaW

2

나는 같은 문제로 어려움을 겪었습니다. 언급 한 두 가지 솔루션 (파생 데이터 삭제 및 .xcworkspace 삭제)을 시도했지만 성공하지 못했습니다. 나는 또한 대부분의 코드를 조금씩 천천히 주석 처리하고 거의 아무것도 남지 않고 인덱싱이 여전히 멈출 때까지 파일을 제거하려고 시도했습니다.

저에게 적합한 솔루션을 찾았습니다. 인덱싱에 문제가없는 이전 Xcode 버전 6.1 (6A1030)로 프로젝트를 연 다음 이전에 사용하던 최신 Xcode 버전 6.1 (6A1052d)로 돌아 왔습니다. 고정되고 계속 잘 작동합니다.

내 결론은 이것이 Xcode 버전 6.1 (6A1052d)의 버그이며 향후 릴리스에서 개선되기를 바랍니다.

문제는 가끔씩 다시 발생하며 매번 동일한 수정이 작동합니다. 또 다른 해결책은 이전 Xcode 버전 6.1 (6A1030)을 고수하는 것이지만 iOS 8.1을 실행하는 기기에서는 작동하지 않으며 최신 버그 수정이 없습니다.


영구 인덱싱 문제를 해결하기 위해 대부분의 제안을 시도했으며 이것이 저에게 효과적이었습니다. 이전 Xcode 6은 없었지만 Xcode 5를 사용했습니다. 빌드하지는 않았지만 색인을 생성 한 후 Xcode 6.1이 성공적으로 색인화되었습니다.
SarahR

이것은 일시적인 해결책 일 뿐이며 몇 시간 후에 다시해야한다는 것을 잊었습니다.
SarahR 2014

2

나는 이것을 Xcode 8.3.3으로 시도했습니다. 내 결과는 다음과 같습니다.

인덱싱을 중단시키는 완벽하게 정밀한 Swift 코드를 작성할 수 있습니다.

인덱싱이 중단되면 중단됩니다. 인덱싱이 중단되지 않는 것으로 Swift 코드를 다시 변경하는 것은 도움이되지 않으며 여전히 중단됩니다.

프로젝트를 닫고 다시 여는 것은 이러한 상황에서 도움이되지 않습니다.

Xcode를 종료하고 다시 시작하면 도움이됩니다. 인덱싱은 더 이상 중단되지 않습니다 (즉, 코드를 중단하지 않는 것으로 다시 변경 한 경우).

필요하지는 않지만 Mac을 재시동하면 도움이됩니다.

교수형은 완벽하게 정밀한 Swift 코드로 인해 발생합니다. 내가 보았던 예

if let date = function1()
?? function2()
?? function3()
?? function4()
?? function5()
?? function6()
?? function7()
?? function8()
?? function9()
?? function10() {
    return date
}

인덱싱이 중단됩니다. 대부분의 "??"를 주석 처리했습니다. 라인과 괜찮 았습니다 (Xcode를 종료하고 다시 시작한 후). 한 줄씩 주석 처리를 해제했습니다. 몇 줄의 경우 괜찮 았고 다음 줄의 주석 처리를 제거하면 중단됩니다.

분명히 도움이되는 유일한 것은 코드를 변경하는 것입니다.


2

내 Xcode에서 해결책은 모든 중복 창을 닫는 것입니다. 어떤 이유로 많은 열린 창은 Xcode를 매우 느리게 만듭니다.


이 열려있는 창 같은 수의 전에 오랫동안 잘 작동 나를 위해이 솔루션은 놀라게뿐만 아니라이었다
기독교

1

마지막으로 문제를 "해결"했지만 해결 방법 일뿐입니다.

다른 프로젝트를 만들고 파일을 하나씩 추가했습니다. 그런 다음 "매우 긴"viewcontroller.swift 파일을 발견했습니다. 그런 다음 코드를 모듈로 나누고 반복적으로 사용되는 코드를 다른 빠른 파일의 함수로 만들었습니다. 또한 긴 표현은 짧은 표현으로 나누어야한다는 제안을 온라인으로 받았습니다. 그런 다음 인덱싱이 작동하고 컴파일이 작동합니다.

그래서 지금은 "해결"되었습니다.

그러나 나는 이것이 옳지 않다고 생각합니다. Xcode IDE는 내 "매우 긴"신속한 파일을 처리 할 수있는 능력 이상이어야합니다. 단 1500 줄입니다. Xcode 6.1이 이미 Xcode 6.0.1에서 업그레이드되었지만 이것이 확실히 버그라고 생각합니다 (오랫동안 존재).


1

나를 위해 Xcode 앱을 삭제하고 다시 다운로드하여 설치했습니다. 적어도 지금은 문제가 해결되었습니다.


1

Xcode 인덱싱은 일반적으로 제안을 위해 코드를 인덱싱하고 스토리 보드에서 당신을 돕는 것과 같은 다른 것들 중에서 자동 완성되며 그 반대의 경우도 마찬가지입니다. 그러나 xcode 프로젝트를 더 빠르게 만들기 위해 터미널을 통해 켜고 끌 수 있습니다.

색인화
기본값 끄기 com.apple.dt.XCode 쓰기 IDEIndexDisable 1 색인화 기본값 켜기 com.apple.dt.XCode IDEIndexDisable 0 쓰기

그러나 좋은 RAM과 함께 빠른 Mac을 사용하는 더 나은 접근 방식.


2
인덱싱을 끄면 Xcode가 심각하게 손상되므로 수행해서는 안됩니다. 누군가에게 새 Mac을 구입하라고 말하는 것이 절대 답이되어서는 안됩니다. 2 년된 노트북은 최신 Xcode를 처리 할 수 ​​있어야합니다.
Knight0fDragon

macOS 10.13 Beta 7에는 인덱서가 실행되는 즉시 Xcode 9 Beta 6 및 Xcode 8이 모두 충돌하는 기능이 도입되었습니다. 이 기능을 끄는 것은 불구가 된 버전에서도 Xcode를 계속 사용할 수있는 유일한 방법이었습니다.
Pegolon

0

그들이 알아낼 때까지 6.0.1로 되돌려도 괜찮다면 그것이 저에게 효과적이었습니다. 6.1과 6.1.1 모두에서 동일한 문제가 발생했습니다. 이제 괜찮아요. 6.2가 나오면 시도해 볼게요.

공식 개발 사이트 ( https://developer.apple.com/downloads/index.action) 에서 이전 버전의 Apple 소프트웨어를 찾을 수 있습니다.

이렇게하려면 먼저 현재 Xcode 복사본을 삭제해야합니다.


0

동일한 MacBook Pro에서 신속한 파일과 함께 Xcode 6.1.1을 사용하고 있습니다.

3D 문자열 배열에 행을 계속 추가하면서 갑자기 Xcode를 사용할 수 없게되었고 이제는 아무것도 할 수 없습니다.

6.1로 되돌리려 고 시도하고 문제가 해결되기를 바랍니다.


나는 같은 문제가 있습니다. 사전 배열을 추가 한 후 xcode를 사용할 수 없게되었습니다. 해결책을 찾았습니까?
Almazini

더 잘 작동하는 Xcode 6.1로 돌아갔습니다. 인덱싱에 영원히 고착되지는 않았지만 가끔은 4 초 동안 타이핑하고 비치 볼을 얻었습니다. 전반적으로 작업을 수행하기에 충분한 코드를 작성할 수있었습니다. 내 코드를 변경하지 않았습니다. Xcode 6.1에서는 macbook pro의 배터리가 너무 영향을받지 않은 것 같지만 6.1.1을 실행하는 2013 년 중반의 macbook air에서는 배터리 수명이 절대적으로 부족합니다. Xcode를 시작하면 ~ 12 시간에서 2 시간이 남습니다.
gardner888 2015

0

Xcode 6.3.2에서 이것을보고 있습니다. 나는 릴리스 후 1 년이 지나면 컴파일러가 작동하기를 바랐지만 아쉽습니다.

위의 해결 방법 중 어느 것도 작동하지 않으면 코드에서 구문 오류를 확인하십시오. 리팩토링 과정에서 클로저를 추출했지만 매개 변수를 한정하는 것을 잊었습니다.

    let hangsInsteadOfError = { l, r in
        return l.nameFirst < r.nameFirst
        || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }

    let fixingErrorAvoidsHang = { (l:User, r:User) -> Bool in
        return l.nameFirst < r.nameFirst
            || l.nameFirst == r.nameFirst && l.nameLast < r.nameLast }

Swift에서 작업하면서 배운 것이 있다면, 문제가되는 코드를 찾기 위해 너무 많이 역 추적하지 않도록 점진적으로 작업하는 것입니다.


0
  1. 색인 생성 상태가 "지표 원"또는 "진행률 표시 줄"입니까?
  2. "인디케이터 서클"이면 이미 시작 부분에 붙어 있음을 의미합니다.
  3. 다른 프로젝트를 열고 확인하십시오. 모두 동일하다면 시스템 문제입니다.
  4. 컴퓨터를 다시 시작하면 모든 것이 정상입니다.

0

Xcode 8.2를 사용하고이 문제로 끝났습니다. 복잡한 튜플 변수 (튜플의 하위 배열이있는 튜플 배열)를 정의한 후에 시작되었습니다. 튜플의 하위 배열에 프로그래밍 방식으로 계산되는 속성이 있으면 상황이 매우 느려집니다.

다른 답변이 언급했듯이 인덱싱에는 영원히 걸리며 변수 유형을 추론하려고한다고 생각합니다.

먼저 유형이 포함 된 변수를 명확하게 정의하여 문제를 해결했습니다. 속성을 업데이트 할 때 변수를 정의 할 때 계산하는 대신 먼저 계산 한 다음 튜플에 할당합니다.

다음은 예제 코드입니다.

var sectionTuples: [(section: String, rows: [(name: String, subtitle: String)])] = []
let subtitle1: String = "" // something calculated dynamically
let subtitle2: String = "" // something calculated dynamically
sectionTuples = [(
section: "Section 1", rows: [
(name: "name1", subtitle: subtitle1),
(name: "name2", subtitle: subtitle2)
])]

결론은 Xcode가 복잡한 구조를 추론하지 못하게한다는 것입니다.


0

나는 같은 문제를 겪고 있었다. 내 Xcode는 8.2.1입니다. 하지만 제 경우에는 33 개의 키-값 쌍이있는 사전 배열을 만들고 싶었습니다. 나는 인덱싱에 갇혀있는 다음과 같은 방식으로하고있었습니다.

var parameter = [String : AnyObject]()
var finalArray = [parameter]

for item in listArray
{
    parameter = ["A": item.a as AnyObject, "B": item.b as AnyObject, "C": item.c as AnyObject, ... , "Z": item.z as AnyObject]

    finalArray.append(parameter)
}

다음은 나를 위해 일했습니다.

var parameter = [String: AnyObject]()
var finalArray = [parameter]

for item in listArray
{
    parameter["A"] = listArray.a as AnyObject
    parameter["B"] = listArray.b as AnyObject
    parameter["C"] = listArray.c as AnyObject
    parameter["D"] = listArray.d as AnyObject 
    .
    .
    .
    parameter["Z"] = listArray.z as AnyObject 
    finalArray.append(parameter)
}

0

나도이 문제가 있었고 "+"연산자로 표현식을 제거 / 변경하여 해결했습니다.

나는 이것을 바꿨다.

var mainArray = arrayOne + arrayTwo + arrayThree + arrayFour + arrayFive

이에:

var mainArray = arrayOne
mainArray += arrayTwo
mainArray += arrayThree
mainArray += arrayFour
mainArray += arrayFive

문제가 해결되었습니다.

내 컴퓨터는 2013 년 후반에 최대 MBP입니다.


내 경험입니다. 완벽하게 정밀한 Swift 코드로 중단되며,이를 고치는 유일한 방법은 코드를 변경하는 것입니다.
gnasher729

0

Xcode 6.1.1로 업데이트 할 수 있습니다.

공식적으로 출시되어 색인 문제가 해결되었습니다. 업데이트 설명에서 안정성 수정을 적용 했으므로보다 안정적인 방식으로 작동 할 가능성이 높습니다.


7
흥미 롭군. 나에게 6.1.1 은 6.1에서 잘 열리는 프로젝트와 함께 끝없는 색인 문제를 도입 했습니다. sign
Pascal Bourque 2014

내가 참조. 우리의 경우 확장 클래스를 사용하여 표현식을 단순화하고 클래스 크기를 줄였습니다. 그것은 우리가 그것을해야했다는 것은 상당히 우스꽝 스럽지만 우리가해야하는 일입니다. 그리고 지금은 트릭을하고있는 것 같습니다. 또한 라인을 주석 처리하여 Swift 컴파일러가 생각하는 바에 따라 실제로 "과도하게 복잡한"코드 부분을 좁히고 최대한 복잡성을 줄였습니다. 꽤 성가신 일이 생기면 곧 고칠 수 있기를 바랍니다.
Angel Naydenov

0

Xcode 6.2 베타가 문제를 해결했습니다. 번개처럼 빠르지는 않지만 적어도 영원히 색인 생성되지는 않습니다. 베타는 일반적인 Xcode 설치 위에 설치 되지 않으므로 베타가 마음에 들지 않으면 삭제하면됩니다.

베타를 포함한 다양한 Xcode 다운로드>


0

나는 다음과 같은 표현을 가졌다.

let x = (value as? Int) ?? someDefault

또한

guard let x = (dateFormatter().string(from: Date()) + msg + "\n").addingPercentEncoding(...) else { ... }

따라서 요점은 유치원 수준의 표현 만 포함하도록 파일을 다시 작성하는 것이며 색인 문제는 사라질 것입니다.


0

Xcode 11.5 (11E608c) 및 원래 질문 이후 6 년 후에도 여전히 동일한 문제입니다. 이 질문에 사과를 "표시"하여 그들이이 혼란을 볼 수 있기를 바랍니다. 이것은 큰 프로젝트 (> 1000 개 파일)이고 나는 시계를 벗어 났기 때문에 동결 인덱스를 발견했을 때 100 개 이상의 파일이 변경되어 돌아갈 수 없습니다.

나는 모든 것을 시도했다 :

  1. 파생 데이터 지우기 및 빌드
  2. xcode를 다시 시작하고 Mac을 다시 시작하십시오.
  3. 소스 제거 및 추가
  4. 사전 리터럴 등을 검색했습니다.

문제는 어레이 생성이었습니다.

private var overlayColors: [UIColor] = [UIColor(hex: "#b71c1c"), UIColor(hex: "#4a148c"),
                                        UIColor(hex: "#880e4f"), UIColor(hex: "#1de9b6"),
                                        UIColor(hex: "#f50057"), UIColor(hex: "#311b92"),
                                        UIColor(hex: "#f44336"), UIColor(hex: "#651fff"),
                                        UIColor(hex: "#d500f9"), UIColor(hex: "#3d5afe"),
                                        UIColor(hex: "#bf360c"), UIColor(hex: "#0d47a1"),
                                        UIColor(hex: "#006064"), UIColor(hex: "#2979ff"),
                                        UIColor(hex: "#ff6f00"), UIColor(hex: "#1a237e"),
                                        UIColor(hex: "#795548"), UIColor(hex: "#004d40"),
                                        UIColor(hex: "#00e676"), UIColor(hex: "#01579b"),
                                        UIColor(hex: "#33691e"), UIColor(hex: "#827717"),
                                        UIColor(hex: "#76ff03"), UIColor(hex: "#ffc400"),
                                        UIColor(hex: "#e65100"), UIColor(hex: "#00b0ff"),
                                        UIColor(hex: "#ff3d00"), UIColor(hex: "#616161"),
                                        UIColor(hex: "#263238"), UIColor(hex: "#ff1744")]

나쁜 신속한 파일을 발견하는 데 도움이 된 것은 xcode가 인덱싱을 동결했을 때 다음 단계를 수행했습니다.

  1. 활동 모니터 열기-> "신속한"프로세스-> 프로세스 정보 표시-> 파일 및 포트 열기. 이렇게하면이 프로세스가 실행중인 파일 목록이 가능한 불량 파일 목록을 드릴 다운 할 수 있습니다.
  2. 다른 편리한 도구는이 스크립트입니다.이 스크립트 SOURCEKIT_LOGGING=3 /Applications/Xcode.app/Contents/MacOS/Xcode &> ~/Documents/xcode.log는 Xcode를 3 단계 상세 정보로 시작하고 로그 파일에 로깅을 시작합니다.
  3. 로그 파일에서 신속한 파일의 마지막 항목을 검색합니다 (예 : "my_project / Source / App /").

완전한 솔루션은 아니지만 드릴 다운하고 찾아 볼 위치를 아는 것이 유용합니다.

활동 모니터 열기-> "신속한"프로세스-> 프로세스 정보 표시-> 파일 및 포트 열기.

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