2010-08-12 5 views
0

Мне нужно разъяснение от всех вас, То есть я внедряю приложение для iPad. В этом я попытался загрузить и анимировать изображения. Количество изображений должно быть больше 100 000. Код, который я использовал для загрузки и добавления в представление, выглядит следующим образом.Управление памятью

UIImageView* imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0,100,100)]; 
NSData *receivedData=nil; 
receivedData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://path/prudently/iphone/image_s/e545afbf-4e3e-442e-92f9-a7891fc3ea9f/test.png"]]; 
imageView.image = [[UIImage alloc] initWithData:receivedData] ; 
[subView addSubview:imageView]; 
[imageView release]; 

Но я получаю исключение после того, как я успешно добавил более 8000 изображений в подзаголовок. Я получаю исключение при получении данных из URL. И еще одна вещь, которую я не выпускаю подвью, потому что, как только я их скачал, мне нужно оживить subview.

Пожалуйста, дайте мне ваши suggessions

Спасибо, Sekhar Bethalam.

+0

Какое исключение вы получаете? Возможно, вы исчерпали память, и в этом случае исключение, вероятно, будет находиться в '+ [NSData dataWithContentsOfURL:]' или один из методов, которые он вызывает. – David

ответ

0

Вы можете написать URL-адрес, изображения или что-то в кешированном файле и разделить некоторые страницы для анимации изображений ... Когда пользователь нажимает ссылку на страницу, приложение считывает и анимирует изображения этой страницы, изображения страница, которую пользователь не использует, не должен отображаться.

1

100 000 изображений будут казаться много для настольных приложений, не говоря уже о смартфоне, таком как iPhone. Разве нет другого подхода, который вы можете предпринять для решения этой проблемы, которая не потребует такого большого количества ресурсов?

+0

@David: Привет, у меня получен этот сигнал программы: «EXC_BAD_ACCESS». Data Formatters временно недоступны, повторите попытку после продолжения. (Неизвестная ошибка загрузки общей библиотеки "/Developer/usr/lib/libXcodeDebuggerSupport.dylib") – ChandraSekhar

0

Единственный способ, которым вы собираетесь это сделать, - это динамически создавать и уничтожать UIImageViews по мере необходимости на экране. IPhone/iPad/iAnything не способны делать то, что вы хотите, из-за ограниченной памяти, доступной на устройстве.

+0

Но у меня была проблема с этим, я не могу их уничтожить, потому что subview должен быть анимирован до закрытия приложения. Это требование. Если я сделаю Так как ты предложил, я не могу их оживить. В этом и заключается проблема: – ChandraSekhar

+0

Я не понимаю значение анимации 100 000 пикселей 100x100 пикселей на экране, который может отображать не более (iPad), 70 экземпляров каждого изображения не перекрываются. – Aaron

Смежные вопросы