我有一个名为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
图像总是说它是空的?我不明白。正如您所看到的,我正在从我添加到项目的文件中设置它????
答案 0 :(得分:0)
我显然给了一个png类型。
但是,有一条评论,并非NSImage在登录控制台时始终在描述符中显示null。一旦NSImage在注销时正确初始化,该对象将显示有关该对象的若干信息,如内存位置和某些屏幕绘制参数。