gpt4 book ai didi

iphone - 无法加载从包中的 Nib 引用的图像

转载 作者:行者123 更新时间:2023-12-01 18:31:10 26 4
gpt4 key购买 nike

我有一个简单的应用程序,其中包含两个 XIB,每个 XIB 都使用 XCode 在文件检查器 Pane 中添加本地化功能进行了本地化(对于两种语言 en 和 ar 用于阿拉伯语)。
我在 Root View Controller 中放置了两个按钮 xib切换应用程序语言并切换到其他本地化 XIB,该应用程序运行良好,除了一个小问题:阿拉伯语 XIB 包含 imageView 内的图像, 并且英文 XIB 在 imageView 中包含一个图像,

1)当我将语言从英语切换到阿拉伯语时,阿拉伯语 XIB 到位但没有图像

2) 当我从阿拉伯语切换到英语时,反之亦然

3)甚至在应用程序启动时它也不显示图像:
XCode 在控制台中的以下 3 种情况下会产生此错误,而不会导致应用程序崩溃:
2011-12-27 12:48:30.412 LangSwitch[4903:f803] Could not load the "image1.png" image referenced from a nib in the bundle with identifier "(null)"didFinishLaunchingWithOptions方法代码是:

     [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(lang:) name:@"Lang" object:nil];
// Override point for customization after application launch.

// Set the navigation controller as the window's root view controller and display.
NSString* str = [[[NSUserDefaults standardUserDefaults]valueForKey:@"AppleLanguages"] objectAtIndex:0];
NSBundle* bnd = [NSBundle bundleWithPath:[[NSBundle mainBundle]pathForResource:str ofType:@"lproj"]];
RootViewController* cont = [[RootViewController alloc]initWithNibName:@"RootViewController" bundle:bnd];
self.window.rootViewController = cont;
[self.window makeKeyAndVisible];

lang选择器代码是:
      - (void)lang:(NSNotification*)sender{
//NSLog(@"%@",[sender object]);
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:[sender object],nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults]synchronize];

NSString* str = [[[NSUserDefaults standardUserDefaults]valueForKey:@"AppleLanguages"] objectAtIndex:0];
NSBundle* bnd = [NSBundle bundleWithPath:[[NSBundle mainBundle]pathForResource:str ofType:@"lproj"]];
RootViewController* cont = [[RootViewController alloc]initWithNibName:@"RootViewController" bundle:bnd];
self.window.rootViewController = cont;
[self.window makeKeyAndVisible];
}

here is the sample app包含我上面描述的内容。如果你们能帮助解决这个问题,我将非常感谢你们。

非常感谢您提前...

最佳答案

问题是 xib 文件在其自己的本地包中查找图像,但图像不存在,自然会出现错误。解决方案是:

  • 从 xib 文件中删除图像。这意味着您的 xib 文件中应该只有空的 ImageView 、没有背景图像的按钮等。
  • 使用助手窗口,将所有 subview 连接到您的头文件并综合相关属性。
  • 在您的 View 中确实加载方法,手动设置您的图像,如:
    [_logoImageView setImage:[UIImage imageNamed:@"logo.png"]];

    [_button1 setBackgroundImage:[UIImage imageNamed:@"buttonImage.png"] forState:UIControlStateNormal];

  • 现在您的图像是从主包加载的,但您的 xib 文件已本地化。编译器不会给出任何错误。

    关于iphone - 无法加载从包中的 Nib 引用的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8643354/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com