Не удалось загрузить изображение, на которое ссылается перо в пакете с идентификатором "(null)" - PullRequest
3 голосов
/ 27 декабря 2011

У меня есть приложение, которое позволяет этому пользователю переключать язык во время выполнения из приложения, все в порядке, но при переключении на другой язык загружается. Загрузите локализованный Xib для этого языка, но без каких-либо изображений внутри этого Xib. Ниже моего кода, которыйиспользуется для переключения на другой язык.

 NSString* str = [[[NSUserDefaults standardUserDefaults]valueForKey:@"AppleLanguages"]      objectAtIndex:0]; 
 NSBundle* bnd = [NSBundle bundleWithPath:[[NSBundle mainBundle]pathForResource:str ofType:@"lproj" ]];



HomeViewController *homeVC = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:bnd];
UINavigationController *localNavigationController = [[UINavigationController alloc] initWithRootViewController:homeVC];
localNavigationController.viewControllers = [NSMutableArray arrayWithObject:homeVC];
localNavigationController.navigationBarHidden = YES;

NSMutableArray *navs = [NSMutableArray arrayWithObject: localNavigationController];

tabBarController.viewControllers = navs;

self.window.rootViewController = tabBarController;

и вот ошибка, возникающая при отладке Xcode

Could not load the "sahdow.png" image referenced from a nib in the bundle with identifier "(null)" 

Я очень рад помочь мне решить эту проблему, которая отнимает у меня много часов.

1 Ответ

2 голосов
/ 27 мая 2012

То, как вы загружаете перо, неверно, и это заставит вас локализовать образ sahdow.png.Фактически, если вы локализуете изображение, вы увидите, что ошибка исчезнет, ​​но я все равно избегал бы этого пути.

iOS автоматически обрабатывает изменения языка в своих настройках и загружает соответствующие локализованные xibs, если они у вас есть. Я рекомендую вам избегать явной загрузки локализованных xib-файлов в ваш код и оставить это для iOS, создав экземпляр контроллера представления следующим образом:

HomeViewController *homeVC = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];

Примечание: Что касается моего ответа, я предполагаю, что "sahdow.png" каким-то образом упоминается в вашем nib-файле специально.Если это не так, пожалуйста, поищите ссылки на это изображение в вашем nib-файле и удалите их.

PS: Я только что нашел еще один пост вупомянуто решение, которое вы используете для загрузки локализованного пера, и побочные эффекты, которые он имеет, такие как требование локализации всех связанных изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...