我们有一个网络服务iPhone应用程序,以10个记录的增量获取短文本(无图形) - 用户可以通过按“加载更多”按钮加载更多记录。 (类似于'默认'App Store'应用程序中的'加载25个')
目前,NSXMLParser用于解析XML,然后将记录存储在NSMutableArray中,并将新记录(来自“load more”)附加到数组中。
现在,我们遇到了两个问题,我们认为这些问题与我们当前将记录存储到RAM中的方法有关。这些是:
要解决这些问题,只需将记录存储到SQLite(或核心数据)而不是数组中,就可以了吗?或者我们需要做更多/不同的事情?
请指导!
谢谢!
答案 0 :(得分:0)
我能够显示超过12000条带有大小文字和记录的记录。每行中的图像。我怀疑你还有其他问题吗?
您是否描述过您的代码?试试Instruments。当你启动&从App切换器返回,您如何处理viewWillDisappear
和viewDidDisappear
?切换视图时,您是dealloc
还是release
?
答案 1 :(得分:0)
didReceiveMemoryWarning:
。可能是因为这个原因。除此之外,您的viewDidLoad
方法应该重新创建视图状态,以确保不会释放任何接口元素或nil
。UITableView
方法将额外记录添加到列表末尾(insertRowsAtIndexPaths:withRowAnimation:
),也可能会在重度和/或重复使用情况下丢弃NSInconsistencyException
。如果你的加载方法是异步的,那么它可能只是没有及时准备好或网络出现故障,并且你的数组的插入调用没有插入完整的行数,如果行数与您的数据源方法numberOfRowsInSection:
不匹配,则strong> 会使应用崩溃。答案 2 :(得分:0)
解决了......在阅读@ Steven的评论之后......我确信这不是内存问题......所以,我进一步深入研究,&发现了这个问题。
实际上,我在tableview中有一个deselectRowAtIndexPath
方法。在低内存环境中,iPhone会释放存储在内存中的记录...因此,在这种情况下,deselectRowAtIndexPath
指向什么都没有,这导致了崩溃......修改过的&现在解决了!
谢谢!