2013-07-17 3 views
0

420 단어 NSArrays 파일이 있습니다. 각 배열에는 10 ~ 200 개의 NSString이 있습니다. 파일 크기는 988KB입니다.하나의 배열을 400 개 중에서 어떻게 선택할 수 있습니까?

컴파일러가 최적화 작업을 수행하지 않을 때 올바르게 빌드되고 실행됩니다. 그러나 아카이브를 만들려고하면 86 개의 파일 중 86 개가 분석됩니다. 필자는 컴파일러가 파일을 최적화하지 못하기 때문이라고 생각합니다. 파일을 두 부분으로 나눠서 컴파일하는 데 약 한 시간이 지나면 보관됩니다.

배열을 사전에 넣은 다음 원하는 한 배열 만 반환합니다. 컴파일러를 매달아 놓은 것 같습니다. 반환되는 배열 결정을 제외하고

-- 420 NSArrays ... 
NSArray *foils_easy = [NSArray arrayWithObjects:a_easy, about_easy, ... you_easy, your_easy, nil]; 

NSArray *keys = @[@"a", @"about", ... @"you", @"your"]; 

NSDictionary *allFoils = [NSDictionary dictionaryWithObjects:foils_easy forKeys:keys]; 
return [allFoils objectForKey:target]; 

은 정말, 사전이 필요하지 않습니다. 반환 될 수 있도록 배열 이름을 생성하는 방법이 있습니까? 화면에 이미지를 넣는 데 사용할 수있는 것과 같은 것일 수 있습니까?

NSString *foregroundImageName = [NSString stringWithFormat:@"%@ForegroundL1", scene]; 

더 나은 해결책이 있기를 기대하면서 실제로 '420 if'문을 넣고 싶지 않았습니다.

+0

plist 또는 JSON 파일에이 모든 것들이 있어야합니다. –

답변

5

plists 파일에 단어 배열을 넣고 이러한 문자열 리터럴을 모두 포함하는 대신 런타임에로드해야합니다. 이렇게하면 코드를보다 깨끗하게 유지할 수 있으며 아마도이 문제를 해결할 것입니다.

+0

나는 그것을 시도 할 것이다. 우선 plist를 읽어야합니다. – JScarry

+0

plist는 기본적으로 특수 형식의 XML 파일입니다. NSDictionary dictionaryWithContentsOfFile : 메소드와 plist 프로그래밍 가이드를 살펴보십시오. https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/PropertyLists/Introduction/Introduction.html#//apple_ref/doc/uid/10000048i –

+0

실제로 JSON이 더 편리 할 것입니다. 특히 중첩 된 구조의 경우 더욱 간결하고 쉽게 코딩 할 수 있습니다. –

관련 문제