문제

저는 초기 출시를 위해 영어와 일본어로 현지화하는 iPhone 앱에서 작업하고 있습니다. 우리는 자주 전화합니다 NSLocalizedString() 디스플레이를 위해 적절한 현지 문자열을로드합니다. 다음에 필요할 때 현지화 된 문자열에 현지화 된 문자열을 저장하는 것이 일반적으로, 또는 여기에서 마이크로 최적화되어 있으며 필요한 경우마다 문자열을 다시로드해야합니까?

도움이 되었습니까?

해결책

이것은 "의존하는"대답 중 하나입니다.

NSlocalizedString을 호출하려면 번들에서 조회를 수행하는 것이 포함됩니다. 이 조회는 매우 빠르지 만 무료는 아닙니다. 이 반환 값을 캐시 할 것인지 또는 NSlocalizedString을 호출하는 편의성을 갖는지 여부는 사용 방법에 따라 다릅니다.

  1. Uilabel 또는 UitableViewCell과 같은 텍스트 필드로 돌아 오는 것을 전달하는 경우, 처음으로 속성을 설정할 때만 조회가 발생합니다.

  2. DrawRect 호출에서 사용하는 경우 조회는 자주, 자주, 또는 결코없는 경우에도 리페인해야 할 때만 발생합니다.

  3. 화면이 모든 프레임마다 다시 그려진 게임 UI에서 사용하는 경우 몇 개의 UI 요소에 대해이 조회는 매 초마다 수백 번 발생할 수 있습니다.

#3과 같은 경우 결과를 캐싱하는 것으로 시작해야한다고 말합니다.

다른 사람들에게는 가장 편리한 방식으로 작성하고 UI에 성능 문제가있는 경우 기기를 사용하여 원인을 좁히십시오. NSlocalizedString이면 그에 따라 최적화하십시오.

다른 팁

미세 최적화. 먼저 작동하게 한 다음 올바르게 만들고 빠르게 만드십시오. 그리고 3 단계에 도착하면 상어 (또는 악기)를 실행 한 다음 그 지침을 따르십시오.

나는 당신이 너무 많은 성능을 얻지 못한다고 생각합니다. nslocalizedstring (키, 댓글)은

[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

벤치마킹이 없으면 이것이 얼마나 비싼 지 모르겠지만 너무 나쁘지는 않습니다. 내 느낌은 이것이 당신을위한 성능 병목 현상이 아니라는 것입니다. 그러나 항상 상어 나 악기를 실행하고 장치에서 응용 프로그램을 실행할 때 직접 볼 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top