backmeupplz
@backmeupplz

Метод класса UIImage не может найти картинку?

Ситуация:
viewcontrollerViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIImageView *changebaleImage;
@property (strong, nonatomic) IBOutlet UILabel *changebleLabel;
- (IBAction)buttonPushed;
@end

ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController;
@synthesize changebaleImage;
@synthesize changebleLabel;
- (IBAction)buttonPushed{
    UIImage *tempImage;
    tempImage = [UIImage imageNamed:@"triangulus"];
    changebaleImage.image = tempImage;
    if (tempImage == nil){
        [changebleLabel setText:@"О нет! опять nil"];
    }
}
- (void)viewDidLoad
{
    [super viewDidLoad];
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
@end

stroyboard2012111818.png
Исходный код


Есть два аутлета: к картинке (UIImageView) и к лейблу (UILabel). Один экшн: к кнопке (UIButton).

Проблема в том, что данный кусок кода
tempImage = [UIImage imageNamed:@"triangulus"];возвращает nil. Судя по документации, такое происходит, когда UIImage не может найти картинку.

(Проверил это так: если картинку нашел — меняет UIImageView, если нет — меняет текст UILabel).

Но картинка-то в проекте есть.

Уже пробовал:

1. Менять «triangulus» на «triangulus.png».

2. Добавлять картинки с припиской "@2x" (вдруг проблемы с ретиной).

3. Добавляя в проект картинку, отмечать пункты как «копировать в проект», так и просто «сделать ссылку на картинку».

4. Давать прямую ссылку к картинке при помощи метода imageWithContentsOfFile.


Почему UIImage не находит картинку?
  • Вопрос задан
  • 3091 просмотр
Решения вопроса 1
TAURUSiv43
@TAURUSiv43
Посмотрел исходный код — опечатка
Файл называется trianglus
В коде используется triangulus
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Knightmare
@Knightmare
В имени файла опечатка.
Ответ написан
aspcartman
@aspcartman
Software Engineer since 2010
Опечатка. Сам на такое нарывался.
Плюс посмотрите в настройках проекта копируете ли вы картинку? (Build Phases/Copy Bundle Resources)
Ответ написан
puchkov
@puchkov
Вот эту строку
tempImage = [UIImage imageNamed:@"triangulus"];

Замените на вот эту
tempImage = [UIImage imageNamed:[NSString stringWithFormat:@"triangulus"];
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы