我的任务是为客户创建一个iPhone应用程序。
我有一些编码经验,但仅限于C#,所以它在这里并没有什么帮助,除了我是iPhone编码的完全新手。
我想要完成的是在地图上获得某种形式的商店定位器。
我已成功添加地图,获取用户位置,并将其放大到用户。我添加了2个注释(我相信这是在地图上显示位置的最佳方式)。
我有2个需要帮助的查询,在某种形式的数据库中列出商店的最佳方法是什么。 XML,PList,.sql等......(这也需要从网上阅读,因为它需要很容易编辑,因为新的商店会被大量添加)。是否可以遍历数据库并在用户所在位置动态地将商店添加到地图上?
我不是要求任何人为我写任何代码,我只是在寻求一些帮助,因为我已经搜索了这个地狱,似乎无法找到任何有用的东西。
非常感谢任何帮助,
由于
答案 0 :(得分:1)
就保存这些位置的潜在格式而言,您可以选择:
XML / JSON是与远程服务器交换数据的良好格式,但对于本地数据库来说不太理想(尽管理论上它们可用于此目的)。 JSON稍微容易处理(使用NSJSONSerialization),但XML也可以相对容易地解析(例如,使用NSXMLParser)。如果您正在进行网络操作,我也衷心建议您查看AFNetworking,它提供了一些优于标准NSURLConnection的优势。当然,这假定您已在服务器上编写了一个Web服务,以提供必要的JSON或XML提要。
如果您想在iOS设备上保存一个简短的本地位置列表,Plist是一种很好的简单格式。将数据保存到plist就像为writeToFile
或NSDictionary
调用NSArray
方法一样简单,并且通过[NSDictionary dictionaryWithContentsOfFile:filename]
或[NSArray arrayWithContentsOfFile:filename]
读取数据。
Core Data是适用于大型数据库的优秀iOS特定格式。它可能是处理持久对象的首选iOS机制,但比plist复杂一个数量级。
如果您考虑的是一种适用于大型数据库的结构,SQLite也是一种很好的数据库格式,但它也适用于最终部署到多个平台(例如Android和iOS)。如果您决定使用SQLite路由,请考虑使用Objective-C包装器(例如FMDB),这将大大简化您的生活。
在上述所有讨论中隐含的是,是的,您当然可以编写迭代数据库和/或模型数据结构的代码,提取必要的位置信息,并动态地向地图添加注释。 Location Awareness Programming Guide应该会帮助您了解一些与MapKit相关的功能。
答案 1 :(得分:0)
“是否可以循环访问数据库并将商店动态添加到用户所在位置的地图上?”
是。就像您创建了前两个注释一样,您现在需要在循环中创建更多注释。您可能需要的唯一附加信息是,一旦您向地图添加了注释,它将保留在那里直到您将其删除。因此,您不需要维护自己的注释列表,除非您想要使用它做其他事情。只是开火而忘记。所以现在你的问题归结为如何在Objective-C中循环选择数据源中的数据而不是MapKit特定的数据。
答案 2 :(得分:0)
我知道这已经过时了,但是如果有其他人像我一样遇到这个问题,你可以使用tanmay bakshi的tmysqlkit直接读取和写入服务器上的mysql数据库。
最佳, 萨姆