我希望这不是一篇不合适的帖子,但我想确保我作为后端实现解析的第一步是正确的,以节省一些时间。我是iOS编程和解析sdk的新手,所以请耐心等待!
在我的应用程序中,用户可以在谷歌地图mapView上创建各种多边形覆盖,存储为GMSMutablePath,基本上是一个坐标列表。用户将至少有一组路径,每个路径至少有一个路径。每组还将存储一些信息,以字符串或数字的形式存储。此信息特定于一组路径。
我正试图找出存储这些数据的最佳方式。我的第一个基本问题是1)我可以将GMSMutablePath作为一个整体存储在Object数据类型中吗?还是Object数据类型引用了通过解析创建的类?此链接(https://www.parse.com/questions/what-is-data-type-of-object-in-data-browser)是我发现的对象数据类型的"最佳"解释,但我不太清楚
我的直觉是否定的,我不能存储GMSMutablePath对象,而那个对象指的是Parse对象。这让我想到2)那么我应该如何存储这些数据?我可以获得构成每条路径的坐标的单个lat/long值,并且我可以将这些值存储为数字,并使用这些数字在其他地方重新创建路径。任何路径都不应该使用太多坐标,并且每组中不应该有太多路径。
在数据浏览器中玩一玩,我发现我可以存储数组,但我不确定这些数组是如何格式化的,因为我需要一个数组(组)(路径)(lat/long值)的数组。一点点谷歌告诉我这是可以做到的,但没有告诉我如何做到。任何数据类型都可以存储在任何数组中,还是指定了数据类型?我习惯了C++编程,所以我习惯了包含单一类型元素的数组。我想的是,我需要一个对象数组,这将是路径组。这些对象中的每一个都将具有与组相关联的字符串/数字信息,以及组内路径的数组。对于这些路径中的每一个,它都必须是一个数组或一个对象。由于对于路径,我只需要坐标lat/long值,我认为我可以将每条路径都作为一个数字数组,并且我可以编写程序使用一个数组,奇数索引为lat/leven索引为long值。话虽如此,但我不知道如何创造这一切。我不想找人帮我写实现,但我能找到的所有例子都要简单得多。。。如果有人能为我指明正确的方向,或者对如何做到这一点有更好的想法,我会喜欢一些建议。
每个用户都将有自己的组,但这些数据将在某个时候与其他用户共享。数据将与它所属的用户相关联。考虑到这一点,我的最后一个问题是3)我应该将特定于用户及其组的所有信息存储在user类中,还是将其完全作为一个单独的类?我想我应该向User类添加一个Object,并将组存储在该Object中。我只想确保我有这个权利,考虑到未来的可扩展性。比如,当我提取组数据时,我是否必须从另一个用户中提取整个用户数据,如果是,这会显著降低速度吗?我想我确实必须发送整个用户数据,但我不知道这是否会带来任何安全风险。最好为组创建一个单独的类,并存储与组关联的用户id吗?如果我这样做,我是否也应该将组作为对象存储在User类中?
很抱歉出现了文字墙,但感谢您提供的任何指导!
如果你需要澄清,请告诉我。
谢谢,Jake
创建一个类来容纳所有对象是不必要的。它只有一些额外的细节,可以方便地添加到用户对象中,然后在用户上有一个对象数组。
我学到的一些主要注意事项是:使用addObject添加到数组中,而不是使用setObject将单个对象添加到PFObject/User中。
分析获取/保存发生在后台线程中,因此,如果您正在加载数据以对其执行特定操作,请确保使用数据的代码在使用[PFObject fetchInBackgroundWithBlock]方法的块内发生。
此外,当解析用户/对象上的数据结构发生变化时,请确保注销当前用户并在应用程序上创建新用户,否则可能会遇到许多未定义的行为,从而导致应用程序崩溃。