Это зависит от используемого вами устройства. Я обнаружил, что в iPhone 3G, когда общий объем памяти, используемой вашим приложением, превышает 10-14 МБ, он уязвим для сбоя. Когда он достигает 20 МБ, он наверняка рухнет.
Насколько я знаю, Apple не дает точных цифр для памяти, которую вы можете использовать. Это всегда меняется, поэтому сложно придавить. Они рекомендуют вам полагаться на предупреждения памяти и реагировать на них соответствующим образом.
iPhone 3GS имеет гораздо больший объем памяти, доступный для приложений (я слышал, что это около 4 раз). Хотя iPhone 3GS имеет только двойную память iPhone 3G, большая часть этой памяти используется ОС. Для приложений осталось очень мало. Именно поэтому 3GS позволит приложениям использовать намного больше памяти.
Кроме того, операционная система может использовать много памяти. Одним из примеров является то, когда Safari держит много открытых вкладок. Вот почему во многих играх рекомендуется перезагружать устройство, если оно часто выходит из строя.
Когда вы программируете, следите за увеличением памяти (из-за неправильного освобождения объектов) и пика памяти. Эта проблема больше связана с реальным тестированием (на как можно большем количестве устройств) и хорошими практиками программирования.
Вот статья, чтобы узнать больше о том, как бороться с проблемами памяти:
http://akosma.com/2009/01/28/10-iphone-memory-management-tips/