我有一个非常庞大而复杂的数据文件(.txt,见下面的代码片段),大小约为10MB,并且想知道存储和随后访问它的最佳方式。 我的应用程序当前使用核心数据存储其他实体,但我不明白如何从这种类型的数据文件创建实体,因为它的复杂性。处理复杂数据+大型数据文件的建议
此文件分为以下几部分: 每个主要部分的第一行以A |并且意味着要定义一个新的'航线'。那么,它是不是名字,所以在下面的例子中,我们有名为V320的气道和另一个名为V321的气道。在以下方面,我们有重要的数据,构成这条航线的'点'/路点。每个人都有一个名字和坐标。所以第一个是45.63N和-84.66W(坐标)的PLN。然后,从那里下一个是45.35N和-84.92W的LORIW,从LORIW我们去IROTO,等等......
注意:可能有两个,三个甚至四个航空公司例如V320的“名称”有3个......但每个都在它自己的地图部分。
其他值无关,如坐标对后面的数字。
本质上,我需要所有这些,以便我可以在我的地图上绘制线条(GMSPolyLine使用Google地图SDK),通过所有这些点为每个气道创建GMSMarkers(每个MKAnnotation的谷歌版本)用户可以点击的航点。 我可以在地图上处理线条/标记的绘制,但难以看到的部分是操纵这些数据并使其更易于访问。
让我知道如果您有任何问题。
A|V320|20
S|PLN|045630647|-0084664108|LORIW|045352072|-0084924214|0|219|1998
S|LORIW|045352072|-0084924214|IROTO|045188989|-0085075111|219|219|1168
S|IROTO|045188989|-0085075111|ADENO|045030644|-0085220425|219|219|1132
S|ADENO|045030644|-0085220425|TIDDU|044877978|-0085359767|215|215|1090
S|TIDDU|044877978|-0085359767|SKIPR|044831714|-0085401772|215|215|330
.....
A|V321|29
S|PZD|031655206|-0084293100|KUTVE|031866950|-0084451303|0|329|1505
S|KUTVE|031866950|-0084451303|DUVAT|031948772|-0084512695|329|329|582
S|DUVAT|031948772|-0084512695|LUMPP|032041158|-0084582139|329|329|657
S|LUMPP|032041158|-0084582139|PREST|032176375|-0084684117|329|329|963
S|PREST|032176375|-0084684117|CSG|032615253|-0085017631|326|326|3129
S|CSG|032615253|-0085017631|JALVO|032722436|-0085064033|326|339|684
.....
我已经包括在我的应用程序捆绑默认SQLite数据库被复制到第一次运行的文件,加快东西。然而,我仍然对如何编写这个解析器很模糊......在Obj C这种类型的工作中还是比较新的。 – m179 2014-10-05 01:11:43
这非常简单。看到我上面的编辑。 – Mundi 2014-10-05 07:13:50
感谢您的代码片段。好吧,我现在明白如何处理文件,但是我会在Core Data xcdatamodel中创建什么类型的实体?它应该是一个数组,我存储在包含所有路点的“航线”的每个实体中? – m179 2014-10-05 12:13:50