Свойство NSImage всегда возвращает нуль?
У меня есть собственный класс под названием фильм. Это просто с тремя свойствами:
.час
@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 = Новая Tittle, theBlurb = Пустая Blurb
Изображение ВСЕГДА говорит, что оно нулевое? Я не понимаю этого. Как вы видите, я устанавливаю его из файла, который я добавил в проект????
1 ответ
Хорошо, это закончилось тем, что было что-то глупое. Мой ресурс изображения был.jpeg и в моем: [[NSBundle mainBundle] pathForResource:@"reel" ofType:@"png"];
Я, очевидно, дал тип PNG.
Один комментарий, однако, это не тот случай, когда NSImage всегда будет показывать нуль в дескрипторе при входе в консоль. Как только NSImage будет правильно инициализирован при выходе из системы, объект покажет несколько частей информации об объекте, таких как расположение в памяти и некоторые параметры на экране.