[[UIImage alloc] initWithContentsOfFile:@"tree.png"];
вернет вам изображение, если изображение /tree.png
существует.Но этого не существует.Вы должны перейти на initWithContentsOfFile
полный путь, а не только имя файла.
Теперь второй код работает, потому что [UIImage alloc]
возвращает некоторую ссылку, которая не инициализирована.В следующей строке вы пытаетесь инициировать его с [im initWithContentsOfFile:@"tree.png"];
, но вы забыли сохранить возвращенное значение в im
, например: im = [im initWithContentsOfFile:@"tree.png"];
.
Если изображение tree.png
сохранено в вашем комплекте, тогда вы можете использовать такой подход: UIImage *im = [UIImage imageNamed:@"tree.png"];
или такой:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"tree" ofType:@"png"];
UIImage *im = [[UIImage alloc] initWithContentsOfFile:filePath];