0

我正在开发一个 iOS 应用程序,用户可以在其中将位置(地点、建筑物等)存储在他的收藏夹列表中。该列表存储在 MySQL 数据库中,通过 HTTP 请求,我可以检索并在地图上显示它们。此外,用户最喜欢的位置存储在设备上,[NSUserDefaults standardUserDefaults]. 但是,因为用户可能已经从他的列表中删除了一个位置,所以我必须仔细检查每个位置(存储在设备中)是否仍然存在于数据库中。在这里,我不得不提一下,一旦用户登录,应用程序就会存储他的信息(下载最喜欢的位置并将它们存储在设备中),下次用户会自动登录。用户可以使用“删除帐户”从特定设备中删除任何个人详细信息。所有位置都作为“逗号分隔符”文件存储在设备中。

我的问题是,如何在阅读每个建筑物时提高应用程序的速度,以及 1)检查是否包含在用户的存储列表中 2)是否包含在用户的数据库列表中。目前,我的地图保持冻结状态(小方块),直到完成上述过程,然后加载地图并移动到用户的当前位置。我有大约冻结时间。4-5秒。

我试图调用负责的方法,“从文件中读取每个位置>检查用户存储的收藏列表中是否存在>(如果是)检查数据库上用户的收藏列表中是否仍然存在>(如果是)添加注释>(否则)将其从存储列表中删除[删除对象]”使用

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
                                             (unsigned long)NULL), ^(void) {
        //call method
});

但延迟仍然在 03.7 - 04.9 秒左右

我用dispatch_get_global_queue错了吗?

提前致谢。

4

0 回答 0