2017-10-19 5 views
0

키보드의 모든 키에 인접한 키를 모두 매핑하여 키 (예 : "a")를 빠르게 찾아서 키가 일정 시간 내에 인접하거나 일치하지 않습니다.값이 Set 인 사전이 Xcode에로드되지 않는 것 같습니다.

이것이 메모리 집약적이라고 생각하기는 어렵지만 키가 만 있으면로드되지만 시간이 지나면 키를 추가 할 때마다 모든 키와 함께 시간이 극적으로 늘어납니다. 전혀로드하지 않고 "신속한 소스 파일 컴파일"에 붙어 있습니다.

var adjcacencyCharacters = [ 
    "a": Set(["a", "q", "w", "s", "z"]), 
    "b": Set(["b", "v", "g", "h", "n", "j", " "]), 
    "c": Set(["c", "x", "d", "f", "v", "g", " "]), 
    "d": Set(["d", "s", "e", "r", "f", "c", "x", "z"]), 
    "e": Set(["e", "w", "s", "d", "r"]), 
    "f": Set(["f", "d", "r", "t", "g", "v", "c", "x"]), 
    "g": Set(["g", "f", "t", "y", "h", "b", "v", "c"]), 
    "h": Set(["h", "g", "y", "u", "j", "v", "n", "b"]), 
    "i": Set(["i", "u", "j", "k", "o"]), 
    "j": Set(["j", "b", "u", "i", "k", "m", "n", "h"]), 
    "k": Set(["k", "j", "i", "o", "l", "m", "n"]), 
    "l": Set(["l", "k", "o", "p", "m"]), 
    "m": Set(["m", "j", "k", "l", "n"]), 
    "n": Set(["n", "b", "h", "j", "k", "m", " "]), 
    "o": Set(["o", "i", "k", "l", "p"]), 
    "p": Set(["p", "o", "l"]), 
    "q": Set(["q", "w", "a"]), 
    "r": Set(["r", "e", "d", "f", "t"]), 
    "s": Set(["s", "a", "w", "e", "d", "z"]), 
    "t": Set(["t", "r", "f", "g", "y"]), 
    "u": Set(["u", "y", "h", "j", "i"]), 
    "v": Set(["v", "c", "f", "g", "b", "h", " "]), 
    "w": Set(["w", "q", "a", "s", "e"]), 
    "x": Set(["x", "z", "s", "d", "f", "c"]), 
    "y": Set(["y", "t", "g", "h", "u"]), 
    "z": Set(["z", "a", "s", "d", "x"]) 
] 
+0

업데이트 : 약 15 분에서 20 분 후 앱이 컴파일되고 실행되었습니다. 왜 이렇게 오래 걸리는지 궁금합니다. 놀이터에서 시도해보십시오. 뭔가 잘못되었습니다. 상수 조회 시간 동안 각 키 값에 대한 세트를 유지하면서이 작업을 더 빨리 수행 할 수있는 방법이 있습니까? – VDog

답변

5

Swift의 유추 추론 시스템에서 엣지 케이스처럼 보입니다. 명시 적으로 유형을 지정하여 도움을 줄 수 있습니다.

var adjcacencyCharacters: [String: Set<String>] = [ 
    ... 
] 
+0

나를 이길. 나는 놀이터를 저장하고, Xcode를 종료 한 다음, 놀이터를 다시 연 후 거의 똑같은 짓을했고 거의 즉시 컴파일되었습니다. – ColGraff

+0

정말로 좋은 메모입니다. – Hexfire