我有一個非常龐大而複雜的數據文件(.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