有可能更容易/更好的方法來做到這一點,但這裏是我會做...
我重組你的文本文件轉換爲CSV具有兩列。左邊的列中應顯示日期段落(以易於解析的格式),右側的列中有實際的段落。當應用程序首次啓動時,它會進入網絡,下載並解析整個文件。
在您的應用中,將這些段落存儲在NSDictionary
中,使用日期作爲關鍵字,並將段落作爲值。
現在將此NSDictionary
編碼爲光盤。
從現在起,您不需要重新下載/重新分析文件。您可以檢查該字典,找到具有正確日期的條目,並顯示該條目。
現在,理想情況下,你會希望你的服務器能夠告訴你的應用程序時,該文件最後更新,併爲您的應用程序來跟蹤,當它最後下載的文件。只要服務器的上次更新日期比應用的上次下載日期更新,應用程序就應該重新下載,重新分析並重新保存文件。
如果您不希望存儲的日期,你可以簡單的把各段的線分開.txt
文件。當你讀入文件時,你可以很簡單地通過這樣做來將每個段落存儲到單獨的數組索引中:
NSArray *paragraphs = [myTextDocContents componentsSeparatedByCharactersInSet:
[NSCharacterSet newLineCharacterSet]];
謝謝你的回答。現在,我不必下載文本文件。我可以簡單地創建文本文件並將其添加到應用程序,以便它可以脫機使用。現在,我怎樣才能從列表中調用下一段?有沒有像我需要在文本文件中的格式?謝謝! –
我會:(a)將每個段落存儲爲一行(長)文本,或(b)在每段之間用空行格式化它。我可能會選擇(a),因爲無論如何您都必須爲設備屏幕設置格式。 –
非常好。我會研究這個!我發現這個問題:[鏈接](http://stackoverflow.com/questions/5102512/how-to-read-a-random-line-from-a-textfile)_italic_有沒有辦法讀下一行和每次我把它稱爲函數時,下一行? –