我认为我的iPhone应用程序出现了一些性能问题。加载,保存和重新加载数据的最佳方式
我喜欢向您展示如何从互联网加载数据,将它们存储在电话上并重新加载它们以在表格视图上打印出来。 我在应用程序上有几个模块,所以我希望它是好的,如果我解释我用来做的一般方式,也许你们中的一个人有了一个想法。
数据量约为250个数据集,包含10-20个数据字段(整数/文本)。
步骤1:由URL请求获得一个JSON数据串
我将一个URL请求与一些限制值(例如city_id和LAST_UPDATE_TIME)开始一个的MySQL数据库的请求限制结果。
第2步:将JSON对象保存到iPhone上的SQLite3数据库。
我会这样做,因为我喜欢在离线模式下使用数据。 这部分应该是重量级的一部分,因为它占总时间的3/4。 我运行了这些对象,并检查是否之前保存过这个对象。 (这里我使用import_id来标识MySQL数据库对象) 如果我确实找到了它,我会更新这个数据集,否则我会插入它。
步骤3:从SQLite的重新加载数据,放入一个NSMutableArray
此Array将由TableView中使用。
注意:数据将在主线程中加载。其他线程将用于延迟加载一些拇指或显示一个旋转轮。
程序中是否存在大错误?我应该在另一个线程中加载数据,但是此时应该在视图中显示什么内容?
什么是最好的方法?
你的想法看起来不错;不过,我会在后台加载和填充数据库,并可能向用户显示一个活动指示器。 – Jeremy
基本上没问题,尽管弄明白如何使用一个“懒惰”的数组方案可能是明智的,该方案仅在被引用时才从数据库加载单个元素(有点类似于TableViews管理行)。有几种方法可以解决这个问题。 (请注意,在启动过程中加载整个阵列会产生“糟糕的用户体验”,并可能导致应用程序被迫中止。) –
@Jeremy我实现了一个“Spinning Wheel”来显示用户,数据将被加载 –