2011-12-29 3 views
0

У меня есть приложение, которое считывает из базы данных некоторые данные (ASIFormDataRequest) и некоторые изображения из файлов сервера (setImageWithURL). Мое приложение делает это каждый раз, когда изменяется viewController (чтобы все обновлялось). Так что я думаю, что есть проблема с кэшированными изображениями. Если я нажимаю свое приложение на ограничение переходов viewControllers, то многократно меняет приложение. Почему это?Мое приложение падает, если я меняю вид управления повторно

Все это появилось после добавления функций setImageWithURL. Кто-нибудь сталкивается с чем-то подобным?

Возможно, мне придется изменить способ работы моего приложения. Как вы, ребята, выполняете эти вызовы на сервере/SQL? Как часто?

Редакцией: (NON_ANSWERED ПОКА):

Xcode не говорит ничего об этом, когда мое устройство выходит из строя его только отображает:

2011-12-29 20: 14: 56.479 CaeDeCajon [4969: 6e4f] arrayProductos.id: 13 id_producto: 31 2011-12-29 20: 14: 56.481 CaeDeCajon [4969: 7b5f] arrayProductos.id: 25 id_producto: 15 2011-12-29 20: 14: 56.490 CaeDeCajon [4969: 7b5f] arrayProductos.id: 31 id_producto: 15 2011-12-29 20: 14: 56.491 CaeDe Cajon [4969: 7b5f] arrayProductos.id: 32 id_producto: 15 2011-12-29 20: 14: 56.395 CaeDeCajon [4969: 955f] arrayProductos.id: 22 id_producto: 35 (gdb) // ЗДЕСЬ ОСТАНОВКИ RUNNING ,

для лучшего понимания вопроса, мое приложение предназначено следующим образом:

  • Основываясь на 5-значок TabBar.

  • Во втором значке у меня есть табличка с категориями продуктов (столы, стулья ...), и если вы нажмете на один из них, появится другой viewController (обычный вид детали), показывающий несколько продуктов подряд (спасибо на scrollView), здесь есть навигационный контроллер с кнопкой на нем, при нажатии он переходит в режим галереи: показывая те же продукты, которые были показаны в scrollView, но в режиме галереи, если вы нажмете один из продуктов, вернет вас обратно в scrollView и переместит экран на выбранный продукт. Довольно нормальный материал.

  • В третьем значке у меня есть корзина для выписки, где нажимается каждый продукт, поднятый на scrollView (где есть кнопка покупки).

Дело в том, что я «читать» Asycn из базы данных всю информацию (без фотографий) в launchingWithOptions и каждый раз, когда ViewController изменяется, чтобы убедиться, что пользователь не подобрать продукт, который был продан вне. Я имплантировал это сам по себе, и, похоже, он работал нормально и не разбивал мое приложение (информация: имя, сток, ... только строки). легкий данные.

Здесь я думаю, что проблема в том, что я «прочитал» все изображения, отображенные из файловой системы, в 1 & 1 (хостинг-компонент) и, кажется, работает нормально и быстро. Проблема в том, что я меняю/изменяю viewController многократно и быстро между tableView-ScrollView-galleryMode, он разбился 4 раза подряд по той же причине. Должен сказать, что я получаю изображения для каждого viewController, например, изображения в scrollView, galleryMode и checkoutView одинаковы. Можно ли их повторно использовать? потому что у меня есть обращения к URL-адресу everyViewController, и я думаю, что это не здорово.

Код для загрузки изображений:

NSString *URLphotos =[[NSString alloc]initWithFormat:@"http://www.myurl.com/imagenes/%@",picture1.jpg]; // this is not always picture1.jpg but I changed it for making it plainer. 

[cell.photo setImageWithURL: [NSURL URLWithString: URLphotos] placeholderImage: [UIImage imageNamed: @ "placeHolder.png"]];

Достаточно ли этого? У меня больше нет.

хотел советы:

  • Как/где вы, ребята, «читают» изображения из URL, чтобы не врезаться в приложение, но есть приложение обновляется все время?
  • Что-то происходит с моим кешем, что заставляет меня сходить с ума? почини это?

Заранее спасибо за интерес

+2

Я думаю, вам нужно предоставить дополнительную информацию. Почему приложение падает? Вышло из памяти или вы попали в BAD_ACCESS, пытаясь получить доступ к освобожденному объекту? Не понимая проблемы, я не думаю, что кто-то сможет предложить решение. – Jonah

+0

Эй, Роберто, можете ли вы опубликовать код и ошибку, которую вы получаете? Это облегчило бы вам помощь. – syclonefx

+0

Когда он останавливается, есть ли что-нибудь в окне стека вызовов? (Можно с уверенностью сказать, что у вас какая-то проблема с хранением. Поскольку их представление зависит от версии iOS и версии Xcode, вы должны определить, какие версии тех, которые вы используете.) –

ответ

0

Это не ясно, если вы используете CoreData, но у меня был подобный опыт с приложением. У него также была панель вкладок, и быстрое нажатие между элементами может привести к случайным сбоям. Эти проблемы были одновременно проверены/обновлены/удалены.

Я решил проблему, перемещая все мои файлы, считывая, записывая и обновляя основной поток. (Например, в Swift):

dispatch_async(dispatch_get_main_queue(), { 
      myDatabase("NameHere", theCommand: "TRUNCATE", theQuery: "dummy") 
}) 

Я сделал ряд функций для общей CoreData команд мне нужно, чтобы ваш код, конечно, будет отличаться. Но попробуйте запустить coredata в основном потоке и посмотреть, не решена ли ваша проблема.

Если у вас есть задача с интенсивным процессором, то вы не должны запускаться в основном потоке, но сложность решения увеличивается (я использую только Xcode в течение 3 месяцев), и кто-то еще может помочь.

Но если вы используете coredata, попробуйте это сначала, чтобы узнать, разрешает ли он вашу проблему.

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