Всегда ли я несу ответственность за то, что ReceptionMemoryWarning вызывается операционной системой iPhone? - PullRequest
1 голос
/ 22 апреля 2009

У меня быстрый запрос о том, как и когда вызывается didReceiveMemoryWarning. Я полностью понимаю, как правильно использовать метод. Однако мой вопрос, который я не могу найти в документации, состоит в том, является ли это моей ошибкой в ​​том, как я управляю своей памятью для вызова этого метода?

Возможно ли, что я делаю все отлично и что iPhone OS нужна память, поэтому отправляет мне это уведомление, поскольку я стороннее приложение? Я запускал утечки, ObjectAlloc и все имеющиеся у меня инструменты, чтобы увидеть любое странное поведение. Мой объем памяти занимает максимум 2,2 МБ. Я не вижу ничего особенно ужасного в том, чтобы сделать код мудрым.

Теперь дело дошло до того, что у меня будут открыты некоторые другие приложения, используйте мой iPhone тут и там - затем откройте приложение, которое я разрабатываю. В конечном итоге это представление представляет собой UITableViewController, который отображает источник данных, созданный из удаленного XML-канала. Так что вполне возможно, что я делаю что-то ужасно неправильное. Но мне нужно лучше понять этот метод, прежде чем обвинять мой собственный код.

Возможно ли, чтобы этот метод вызывался в приложении, которое совершенно нормально работает с памятью?

Ответы [ 2 ]

1 голос
/ 23 апреля 2009

Во многих отношениях не имеет значения, кто несет ответственность. Код Apple действительно течет; особенно средство выбора изображений и HTTP-классы (хотя последние не плохо протекают). Что бы ни вызывало предупреждение, вы - единственный человек, который может написать код для восстановления после него.

Нет документированного следа памяти (который я знаю) для приложения, поэтому я думаю, что это сообщение, безусловно, может быть отправлено в приложение в любое время. Это конечно отправляется в разное время на симуляторе и телефоне. Это означает, что не существует «безопасного следа», при котором вы можете гарантировать, что никогда не получите предупреждение памяти. Очевидно, что из-за того, что ваша память занимает мало места, она становится менее вероятной.

Может быть, вы должны опубликовать пример кода, чтобы увидеть, если он много утечек. Приложение, которое вы описываете, звучит достаточно просто, чтобы при нормальном использовании не вызывать предупреждение о памяти.

1 голос
/ 22 апреля 2009

Память предупреждений может произойти в любое время. Существуют приложения, работающие в фоновом режиме, такие как Mail и Safari, которые делают кто знает, что.

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