我是Objective-C和Xcode的新手。我做了一个非常简单的Mac应用程序,只是为了了解如何在Cocoa中显示图像。我正在使用Xcode 5.1.1。在OS X 10.9.2下。一个 Image Well 对象显示文件中的图像(文件.png保存在项目内的Assets目录中)。一个按钮来改变图像。初始图像(10.png文件)应由 awakeFromNib 过程显示。按下按钮后,图像井中的图像应更改为5.png-image。使用Interface Builder,我为按钮建立了一个动作,为 Image Well 建立了一个出口。
这是一段代码:
// AppDelegate.h
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (weak) IBOutlet NSImageView *changeImage;
@property (assign) IBOutlet NSWindow *window;
- (IBAction)set5:(id)sender;
@end
// AppDelegate.m
#import "AppDelegate.h"
@implementation AppDelegate
- (void)awakeFromNib
{ NSImage *im10;
im10 = [NSImage imageNamed:@"10.png"];
if (!im10) NSLog(@"im10 is nil");
[_changeImage setImage:im10];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { }
- (IBAction)set5:(id)sender {
NSImage *im5;
im5 = [NSImage imageNamed:@"5.png"];
if (!im5) NSLog(@"im5 is nil");
[_changeImage setImage:im5];
}
@end
启动后,图像井中没有图像,按下按钮后没有图像。问题是通过 imageNamed 功能连接到.png文件: NSLogs 正在打印&#34; im5 / im10是nil&#34;,我看到的同样调试。我试图将完整路径指定为文件,我尝试使用.tiff文件 - 没有结果。
我的应用程序出了什么问题? 感谢。
答案 0 :(得分:1)
imageNamed:
预计没有文件扩展名。尝试使用[NSImage imageNamed:@"5"]
。