2011-12-29 74 views
0

我有一个应用程序从数据库读取一些数据(ASIFormDataRequest)和一些图像从服务器文件(setImageWithURL)。每次viewController被更改时,我的应用程序都会执行它(以便更新所有内容)。所以我想有一个缓存图像的问题如果我推我的应用程序重复的限制切换viewControllers反复我的应用程序崩溃。为什么是这样?我的应用程序崩溃,如果我反复更改控制视图

所有这些都在添加setImageWithURL函数后出现。有没有人碰到类似的东西?

我可能不得不改变我的应用程序的工作方式你们如何做这些调用服务器/ SQL?多久?

编辑:(NON_ANSWERED YET):

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)//此处停止 运行。基于5图标的TabBar

为了更好地理解这个问题,如下我的应用程序的设计。

  • 在第二个图标中,我有一个产品类别(表格,椅子......)的tableview,如果你按其中的一个出现另一个显示连续几个产品的viewController(通常的详细视图)到一个scrollView),这里有一个带有按钮的导航控制器,当它按下时,它会将您带到图库模式:显示与scrollView中显示的相同产品,但是在图库模式下,如果按下其中一个产品,将您带回到scrollView并将您的屏幕移至所选产品。非常普通的东西。

  • 在第三个图标中,我拥有结帐篮,其中每个产品在scrollView(有购买按钮的地方)都被按下。

  • 的情况是,我从数据库中“读” Asycn在launchingWithOptions的所有信息(没有图片)和每一次的viewController改变时,以确保用户不拿起这是销售的产品出。我自己植入它,它似乎工作正常,不会崩溃我的应用程序(信息:名称,股票,...只有字符串)。光数据。

    这里是我认为问题所在的地方:我“读取”1 & 1(托管compony)中的文件系统显示的所有图像,并且似乎工作正常且快速。问题是当我在tableView-ScrollView-galleryMode之间重复/更改viewController并快速切换时,出于同样的原因它连续崩溃了4次。我必须说我得到每个viewController的图像,例如scrollView,galleryMode和checkoutView中的图像是相同的。我可以重复使用吗?因为我有URL调用每个ViewController,我想这不健康。

    下载图像的代码:

    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 2011-12-29 01:19:03

    +0

    嘿罗伯托你能发布代码和错误吗?这会让你更容易帮助你。 – syclonefx 2011-12-29 01:45:17

    +0

    停止时,调用堆栈窗口中是否显示任何内容? (说你有某种存储问题是相当安全的,因为这些显示方式与iOS版本和Xcode版本有所不同,所以你应该确定你正在使用哪些版本。) – 2011-12-29 20:41:49

    回答

    0

    目前尚不清楚,如果你正在使用Coredata,但我有一个应用程序类似的经历。它也有一个标签栏,并快速按下物品之间会导致随机崩溃。问题是coredata被同时读取/更新/删除。

    我解决了这个问题,将所有的coredata读取,写入和更新都移到了主线程中。 (在夫特示例):

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

    我提出了一系列功能我需要这样的代码当然将不同的共同coredata命令。但是尝试在主线程上运行coredata,看看你的问题是否已经解决。

    如果你有一个CPU密集型coredata任务,那么你不应该在主线程上运行,但解决方案的复杂性会增加(我只用了3个月的Xcode),而其他人可能会提供帮助。

    但是,如果您正在使用coredata,请首先尝试以查看它是否可以解决您的问题。

    相关问题