Ios 我应该使用数组还是数据库?在哪里初始化?

Ios 我应该使用数组还是数据库?在哪里初始化?,ios,objective-c,mapbox,data-management,Ios,Objective C,Mapbox,Data Management,我目前正在使用用于iOS的Mapbox SDK,我有一个关于一般数据管理的问题 我得到了一个带有坐标和一些其他属性的表,该表大约有600到700行。现在我想知道在我的应用程序中存储和初始化这些数据的最佳方式是什么?第二个问题,我应该在哪里初始化这些数据 问题#1:我是否应该将所有数据放在代码中并用它初始化一个数组?还是最好创建一个本地数据库并从那里查询数据?或任何其他文件格式? 问题2:我应该在appDelegate中初始化数据/连接到数据库吗?或者,在哪里做这件事最好?核心数据是超快速和超高效

我目前正在使用用于iOS的Mapbox SDK,我有一个关于一般数据管理的问题

我得到了一个带有坐标和一些其他属性的表,该表大约有600到700行。现在我想知道在我的应用程序中存储和初始化这些数据的最佳方式是什么?第二个问题,我应该在哪里初始化这些数据

问题#1:我是否应该将所有数据放在代码中并用它初始化一个数组?还是最好创建一个本地数据库并从那里查询数据?或任何其他文件格式?
问题2:我应该在appDelegate中初始化数据/连接到数据库吗?或者,在哪里做这件事最好?

核心数据是超快速和超高效的,所以如果您拥有的数据是静态的,我会以您拥有的格式(JSON、XML)将其添加到您的目标中,然后在应用程序上首先运行处理并将其存储到核心数据中,核心数据基本上是一个sql数据库。从那时起,您可以在项目中的任何地方访问它。而且您不必在内存中保存700项数组

Apple提供了核心数据堆栈的模板,该模板加载在AppDelegare中,因此,如果您创建新的空项目并勾选“使用核心数据”,您将获得AppDelegate中的所有方法。然后可以将它们复制到项目中,定义模型,创建NSManagedObject子类,并更新核心数据方法以反映正确的模型和文件名


或者,您也可以将预加载的sqlite包含到您的项目中,但我会保持简单并使用第一个选项。

logan
的建议很接近——您希望将数据烘焙到平铺中,然后可以将它们作为SDK中的
RMMapboxSource
rmmbtileSource
覆盖


如果您的数据需要更多的新鲜度,则600-700条记录应该可以在
mapView.annotations
中正常工作,因为它们仅在屏幕上绘制(需要绘制每个记录时,代表会请求图层)

如果您使用的是mapbox,为什么不将数据存储在平铺中呢。如果您的数据是持久不变的,那么mapbox允许您将其烘焙到瓷砖中。如果我理解正确,您指的是RMInteractiveSource协议,对吗?如果我要使用它,就必须在tilemill中添加一个点图层。这意味着,如果我需要添加一个点,它是更改基础形状文件所必需的,对吗?在这种情况下,即使数据每年只更改一次,json文件也是更方便的解决方案。或者你怎么想?我已经有一段时间没有使用MapBox了,但我记得我去了浏览器中的一个实时编辑器,在那里我可以选择上传数据。然后,这些数据将直接发送到磁贴上。如果您的数据非常动态且不断变化,它将无法工作。但是,如果你的数据是相对一致的,比如2000-2001年的逮捕记录,那肯定是正确的选择。