[Swift] XCode 6.4의 Build(Swift source file의 Compile)와 Indexing 주변이 매우 느려진 이유와 대응 - Dictionary 편

4279 단어 iOSSwiftXcode
이 상황에 대해 이 방법을 채택하면 방법이 있다는 비망록이 있다.
다른 방법과 견해도 있는 것 같은데 그쪽을 참고하세요.

환경

  • XCode 6.4
  • Swift 1.2
  • 상황


    TableView를 설치하고 Realm과 관련된, Section, Index, Search 등 다양한 콘텐츠를 제작하던 중 갑자기 Build가 느려졌습니다.
    고장 상태를 검사한 결과 Comple Swift source files 파일이 매우 느린 것으로 나타났습니다.


    인디케이터가 계속 돌아가자 맥의 팬이 이상한 소리를 내기 시작했고 모든 응용 프로그램이 바스락거리기 시작했다. 결국 다운되었는데 그 Build를 멈추지도 못했다.

    원인


    코드에서, Realm에서 데이터를 검색하여 Dictionary에 넣고, TableViewController에서 되돌아오는 function을 찾았습니다.
    그 Dictionary의 제작 방법에 문제가 있는 것 같습니다.
    func getItemDic() -> Dictionary<String, Array<Dictionary<String, Any>>> {
      // hogehoge
    }
    
    ↑ 느낌을 주는 Dictionlary of Array of Dictionary를 되돌리는 방법은 다음과 같다.
    for eachObject in allObjectsFromDB {
      var tmpDic: Dictionary<String, Any> = [
        "id" : eachObject.id,
        "name" : eachObject.name
       ・
       ・
       ・
      ]
    }
    
    성명할 때 값을 넣는 방법이라면 느려질 수 있습니다.
    (그러나 모든 상황이 느려지는 것은 아니다.)

    지원


    값을 넣지 않고 비어 있습니다. 나중에 값을 더하면 컴파일이 좋습니다.
    for eachObject in allObjectsFromDB {
      var tmpDic = Dictionary<String, Any>()
      tmpDic["id"] = eachObject.id
      tmpDic["name"] = eachObject.name
    }
    
    또 최초 선언문에 넣은 값이 소수라면 문제가 없다는 등의 보도도 볼 수 있어 어떤 명확한 사항이 있는지는 알 수 없지만 어쨌든 비망록이다.

    References

  • Swift XCode Index Freezing or Slow
  • Why is Swift compile time so slow?
  • Xcode6.2에서 매우 느리게 구축
  • Swift의 컴파일 시간이 75% 정도 단축된 이야기입니다.
  • 좋은 웹페이지 즐겨찾기