2011-12-21 13 views
2

일부 현지화 된 NIB가 해당 언어 번들에서 올바른 이미지를로드하지 않는 XCode 4.2에서 문제를 발견했습니다.현지화 된 NIB가 XCode4에서 현지화 된 이미지 버전을로드하지 않음

내 컨트롤러 중 하나에서 몇 가지 이미지보기가 있습니다. 영어 버전에서는 일부 이미지보기가 이미지에로드 될 예정인 이미지의 프랑스어 버전을 가져 오는 것으로 나타났습니다. NIB의 프랑스 판에도 똑같은 일이 일어납니다.

분명히 내 이미지 리소스를 두 번 확인하고 프랑스어 이미지가 "en.lproj"및 "fr.lproj"폴더에 올바르게 저장되어 있는지 확인했습니다.

전에이 문제를 겪은 사람이 있습니까? 가장 큰 문제는 시뮬레이터 나 실제 전화기에서 프로젝트를 실행할 때마다 이미지가 일관되게 플립 플롭 (flip-flop) 된 것처럼 보입니다. 내 컨트롤러에서 수동으로 이미지를로드 할 필요가 없습니다. 모든 이미지는 NIB를 통해 미리 설정됩니다.

+0

가 있음을합니까 문제는 항상 동일한 이미지에서 발생합니까? –

+0

처음에는 예라고 생각했습니다. NIB를 재생성하고 수동으로 현지화 된 이미지를 추가하려고했습니다. 잠시 동안 IB에서 NIB를 열면 이미지가 NIB에서 잘로드됩니다. 프로젝트를 실행하자마자 시뮬레이터/iPhone 빌드는 일부 이미지 만 올바르게로드합니다. Xcode에서 영향을받는 NIB를 열면 일부 이미지가 이제 프랑스어로 표시됩니다 (다른 이미지보기는 영향을받지 않습니다). 영향을받는 이미지 뷰도 무작위입니다. 난 정말 내 코드에서 올바른 이미지를로드하기 위해 수동 호출을하는 것과 아주 가깝다. :-( – Moonjock

+0

당신이 해결책을 찾았나요? 내가 같은 문제가 :( – mrmuggles

답변

0

리소스가 빌드에 포함 된 후 해당 리소스를 현지화하면 해당 리소스의 현지화되지 않은 버전이 빌드 ​​된 응용 프로그램에 남아 있습니다. 응용 프로그램을 다시 작성하면 새 파일이 추가되고 편집 된 파일 만 업데이트되지만 삭제 된 파일은 제거되지 않습니다.

시뮬레이터에서이 문제를 해결하려면 이끌이 (Window>Organizer)를 열어 Projects 탭을 선택하고 프로젝트의 파생 데이터를 삭제 한 다음 다시 작성하십시오.

장치에서이 문제를 해결하려면 응용 프로그램을 삭제하고 빌드 제품 (Product>Clean)을 제거한 다음 다시 빌드하십시오.

+0

안녕 니콜라스, 난 그냥 주최자> 프로젝트를 시도> 파생 데이터 접근을 삭제합니다. 그것도 작동하지 않았다. 나는 장치에서 여러 번 실제 장치를 삭제했다. (사실 장치와 시뮬레이터에서 매번 새로운 빌드를 만든다.) 아직도 운이 없다 .-- ( – Moonjock

+0

나는 지역화를하면 궁금하다. NIB, 그것은 기술적으로 너무 이미지의 현지화 된 버전을로드해야합니까? 즉, 나는 프랑스 이미지를로드하는 제 펜촉의 프랑스어 버전을 볼 수 있습니까? – Moonjock

0

나는 동일한 문제가 있으며 발견 한 유일한 해결책은 이미지 로컬 리 제이션을 제거하고로드하는 것입니다.

UIImage *img = [UIImage imageNamed:NSLocalizedString (@"imageOne.png", @"Main Image")]; 

그리고 당신의 Localizble.strings (스페인어) 예를 들어

, 당신은 쓰기 :

"imageOne.png" = "imageOne_es.png"; 

그리고 Localizble.strings (영어)을 위해 :

"imageOne.png" = "imageOne_en.png";