NSImage属性总是返回null?

时间:2013-07-15 18:01:12

标签: properties nsimage initwithcontentsoffile

我有一个名为movie的自定义类。它很简单,有三个属性:

.h

@interface WTAMovie : NSObject

@property (strong, nonatomic) NSImage *theImage;
@property (strong, nonatomic) NSString *theTittle;
@property (strong, nonatomic) NSString *theBlurb;


@end

.m有一个初始值设定项,用于为属性设置一些默认值,以及一个描述方法,如果记录自定义对象,则返回属性的值。像这样。

-(NSString *)description
{
NSString *desc = [NSString stringWithFormat:@"<Movie> - theImage = %@, theTittle = %@,     theBlurb = %@", _theImage, _theTittle, _theBlurb];
return desc;
}

-(id)init
{

self = [super init];
if (self) {

    _theTittle = @"New Tittle";
    _theBlurb = @"Empty Blurb";


    NSString* imageName = [[NSBundle mainBundle] pathForResource:@"reel" ofType:@"png"];
    _theImage = [[NSImage alloc] initWithContentsOfFile:imageName];


    NSLog(@"from the person calss init: %@", _theImage);

}

return self;
}

在我的Document.m文件初始化程序中,我正在创建一个新的Movie对象,将其放在一个数组中,该数组被定义为保存电影对象,然后记录该对象。像这样:

- (id)init
{
self = [super init];
if (self) {
    // Add your subclass-specific initialization here.
    _movies = [NSMutableArray new];
    WTAMovie *firstMovie = [WTAMovie new];
    [_movies addObject:firstMovie];
    for (id object in _movies)
    {

        NSLog(@"%@", object);

    }

}
return self;
}

控制台中的输出是:

2013-07-15 13:47:57.174 HomeworkFour [5044:303] - theImage =(null),theTittle = New Tittle,theBlurb = Empty Blurb

图像总是说它是空的?我不明白。正如您所看到的,我正在从我添加到项目的文件中设置它????

1 个答案:

答案 0 :(得分:0)

好吧,这最终变成了愚蠢的东西。我的图片资源是.jpeg,在我的:  [[NSBundle mainBundle] pathForResource:@“reel”ofType:@“png”];

我显然给了一个png类型。

但是,有一条评论,并非NSImage在登录控制台时始终在描述符中显示null。一旦NSImage在注销时正确初始化,该对象将显示有关该对象的若干信息,如内存位置和某些屏幕绘制参数。