即使png文件位于Resource文件夹中,NSImage也会返回nil

时间:2013-12-07 18:19:46

标签: objective-c nsimage nsimageview nsalert

我正在尝试使用NSImage imageNamed:方法加载图像,但我没有成功

我已将图像复制到项目文件夹中:Project> Resources并使用以下方法添加到项目中:“将文件添加到项目...”

    NSImage* image = [NSImage imageNamed:@"logosH"];

    if (image == nil){

        NSLog(@"NULL :/");
    }

    NSImageView *accessory = [[NSImageView alloc] initWithFrame:NSMakeRect(0,0,200,55)];
    [accessory setImageScaling:NSScaleToFit];
    [accessory setImage:[NSImage imageNamed:@"logosH.png"]];
    [myAlert setAccessoryView:accessory];

    [myAlert setIcon:[NSImage imageNamed:@"HipArthroplastyTemplating.tiff"]];

    [myAlert runModal];

这是代码。我已经尝试了我可以在其他问题中找到的所有解释和解决方案但不起作用,我在控制台中获取NULL消息并且setIcon加载任何内容

我猜这是捆绑或类似的东西(我正在学习Objective-C所以这是新的)

我已经使用了可可开发者的一个例子的代码,但是没有用,我试图在该项目中加载我的图像,它在那里工作!但在我的项目中没有:/

任何帮助,任何想法?非常感谢

1 个答案:

答案 0 :(得分:6)

您的图片为空,因为找不到它。如果您的图像未在捆绑中复制或文件名错误,则可能会发生这种情况。

重要提示:在每次测试前清理项目,以确保资源得到更新。

图像的名称也应包含扩展名,但.png除外,它不是必需的。如果您仍然遇到问题,那么该文件很可能不在您的捆绑包中。要了解图片是否已复制到捆绑包中,请点击项目导航器中的图片(⌘+ 1),然后在文件检查器中进行验证(⌘+⌥+ 1 )在目标成员部分中,选中项目名称旁边的复选框。

Target Membership

如果问题仍未解决,请转到项目文件中的项目导航器(顶部的第一个文件)。确保左侧的选项是目标下项目的名称。然后转到构建阶段标签,打开复制捆绑资源部分。如果您的图像不在列表中,则必须使用底部的+按钮添加它。

enter image description here