UIImage imageNamed все еще вызывает проблемы с памятью на iOS4 для больших изображений? - PullRequest
2 голосов
/ 08 декабря 2010

Я нашел пару статей по управлению памятью, в которых упоминалось UIImage's imageNamed, вызывающих проблемы, когда в памяти много больших изображений.

http://akosma.com/2009/01/28/10-iphone-memory-management-tips/ http://www.alexcurylo.com/blog/2009/01/13/imagenamed-is-evil/

Оба они были написаны для версии ОС <= 3.0. </p>

Кто-нибудь знает, по-прежнему ли это проблема в iOS 4?

Ответы [ 3 ]

3 голосов
/ 09 февраля 2011

Больше не проблема, см. здесь , а возможно здесь .

2 голосов
/ 09 июня 2011

Если вы посмотрите по этой ссылке: Разгон изображения UIImageNamed: FUD вы увидите, что на самом деле есть две проблемы с большими изображениями и изображениями.была ошибка в процедурах кеширования imageNamed: она не отпускала свой кеш, даже когда получала предупреждение mem.Это было довольно серьезной проблемой и лично для меня было причиной многих сбоев памяти, так как вы не могли вернуть память после использования imageNamed: чтобы загрузить ее.Это больше не проблема, так как, похоже, это было исправлено в 3.0.

imageNamed: хранит в своем кеше несжатые данные изображения.Для действительно больших (с точки зрения их размера на экране - ширина х высота) эти данные могут быть очень большими.ширина * высота * 4 - это то, что я обычно видел, ссылаясь на его несжатый размер.Это по-прежнему может стать проблемой для вас, если вы используете довольно большие изображения, и особенно этого следует избегать, если вам не нужно часто перерисовывать их.

Итак, резюмируем: 1 больше не проблема, 2 может быть.

0 голосов
/ 30 октября 2014

это делает.В сочетании с UIPageViewController, безусловно, это так.при попытке создать детское приложение, отображающее анимацию клавиш и звуки животных и мультфильмов, все детали отдельных животных находятся в собственном UIViewController. Все представления отображаются в UIPageViewController (Transition: scroll).Не знал об ошибке imageNamed и почти месяц думал, что это проблема, вызванная UIPageViewController.ARC никогда не освобождает память.ASA я переключился на imageWithContentsOfFile вместо imageNamed, все проблемы решены.UIPageViewController был невиновен в реальности.Теперь работает гладко.Нет невыпущенных проблем с памятью.

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