Мой iPhone приложение падает после возвращения из фона. Причина: проблема UIImage - PullRequest
0 голосов
/ 23 сентября 2010

Прежде всего, я хочу сказать, что этот сайт УДИВИТЕЛЬНЫЙ!и это помогло мне сделать много вещей при создании приложения для iPhone.

Теперь моя проблема:

Когда я запускаю свое приложение, у меня есть UIImageView, который загружает изображение в зависимости от if/ else операторы в методе

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

.Эти изображения назначаются следующим образом:

BG.image = someImage;

конечно, BG - это UIImageView, а someImage - это iVar с @property, @synthesis.someImage инициализируется изображением из основного пакета в viewDidLoad:

- (void)viewDidLoad {

//init stuff from file
someImage = [UIImage imageNamed:@"FirstViewBG_5N.png"];

[super viewDidLoad];}

Мое приложение работает успешно, загружая изображения в соответствии с touchBegan (как уже упоминалось), НО!

Когда мое приложение отправленона задний план и возвращается, он падает при первом прикосновении.

Когда я заменил:

BG.image = someImage

на:

BG.image = [UIImage imageNamed:@"FirstViewBG_5N.png"];

он работает счастливо ?!Я думаю, что someImage сброшено или повреждено?

Я не хочу оставлять это так, потому что метод imageNamed читает с диска каждый раз, что, я думаю, приведет к проблемам с производительностью?

Iдумаю мой вопрос понятен?Это то, что:

1- Почему мое приложение вылетает после возвращения из backgroud 2- Как мне решить эту проблему?

Спасибо за помощь!Спасибо!

Ответы [ 2 ]

1 голос
/ 23 сентября 2010

'someImage' выпущен.сохранить его

0 голосов
/ 23 сентября 2010
  1. Возможно, потому что изображение было выпущено.Метод imageNamed в классе UIImage не возвращает +1 счетчик ссылок для вашей переменной someImage, поэтому вы не являетесь его владельцем.
  2. Если предположить, что someImage является свойством с сохранением do: self.someImage = [UIImage imageNamed: @ "FirstViewBG_5N.png"];

ps, будьте осторожны, чтобы освободить его на dealloc;).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...