首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于存储大量记录的App结构

用于存储大量记录的App结构
EN

Stack Overflow用户
提问于 2012-10-09 00:15:28
回答 2查看 95关注 0票数 1

我正在创建一个处理房地产清单的iOS应用程序。目前的结构如下:

  1. 设备联系服务器并下载一个索引文件,该索引文件包含服务器上的所有当前记录ID以及上次修改每条记录的时间。
  2. 设备上的每个核心数据记录都会根据索引文件进行检查,或者:( a)记录是最新的,没有发生任何事情。( b)记录过期,从设备中删除,并从服务器重新加载。c)记录不是索引文件的一部分,而是从设备中删除的。( d)在具有清单ID的设备上找不到记录,并从服务器下载。

我使用索引文件,因为为了比较,我只需要下载每条记录的一小部分数据。

我的问题是,我目前在服务器上有大约1250条测试记录。使用当前的设置,完成初始索引检查例程几乎需要3分钟(使用WiFi)。必须有更好的方法来处理iOS应用程序中的大量记录。我是不是错了,试图把所有的记录加载在核心数据的前端?

供参考,我包括ListingRecord.h

代码语言:javascript
复制
@property (nonatomic, retain) NSString * amenitiesText;
@property (nonatomic, retain) NSString * bodyLabel1;
@property (nonatomic, retain) NSString * bodyLabel2;
@property (nonatomic, retain) NSString * bodyLabel3;
@property (nonatomic, retain) NSString * brokerID;
@property (nonatomic, retain) NSString * companyID;
@property (nonatomic, retain) NSDate * dateCreated;
@property (nonatomic, retain) NSString * descriptionText;
@property (nonatomic, retain) NSString * displayPrice;
@property (nonatomic, retain) NSString * featuredListing;
@property (nonatomic, retain) NSString * headerLabel;
@property (nonatomic, retain) NSData * headerPhoto;
@property (nonatomic, retain) NSString * lastUpdate;
@property (nonatomic, retain) NSNumber * latitudeData;
@property (nonatomic, retain) NSNumber * listingID;
@property (nonatomic, retain) NSString * listingType1;
@property (nonatomic, retain) NSString * listingType2;
@property (nonatomic, retain) NSString * listingType3;
@property (nonatomic, retain) NSString * listingType4;
@property (nonatomic, retain) NSString * listingType5;
@property (nonatomic, retain) NSString * listingType6;
@property (nonatomic, retain) NSString * listingType7;
@property (nonatomic, retain) NSString * listingType8;
@property (nonatomic, retain) NSNumber * longitudeData;
@property (nonatomic, retain) NSNumber * numberPrice;
@property (nonatomic, retain) NSData * photo1;
@property (nonatomic, retain) NSData * photo2;
@property (nonatomic, retain) NSData * photo3;
@property (nonatomic, retain) NSData * photo4;
@property (nonatomic, retain) NSData * photo5;
@property (nonatomic, retain) NSString * pinLabel;
@property (nonatomic, retain) NSData * thumbnailPic;
@property (nonatomic, retain) NSString * sessionID;

索引文件包含listingID和lastUpdate,并将它们与设备上的核心数据记录进行比较。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-09 00:37:59

似乎有两个瓶子颈,与服务器的通信和检查例程。为了帮助解决第一个瓶颈,我强烈建议使用JSON,如果使用得当,它将减少从服务器传递到设备的数据的大小,并且非常容易使用。它还应该有助于解决第二个瓶颈,即检查例程,因为您只需从服务器获取返回的数据,用一行代码将其转换为JSON对象表示,然后基本上是处理值的NSDictionary。

票数 2
EN

Stack Overflow用户

发布于 2012-10-09 01:01:18

如果您需要一次完成所有这些操作,我将安排您的流逻辑,以便您可以在后台线程中执行这个“初始索引检查例程”。

另一个选项是将索引文件发送到服务器,让后端服务器完成工作,它只返回用于添加、删除、更新等的列表。这将取决于后端服务器是否能够这样做。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12791203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档