2011-12-25 127 views
0

我正在製作Iphone飲料卡遊戲應用程序。 所有的卡都意味着不同的東西,我希望用戶能夠按下信息按鈕,然後顯示有關當前卡的信息的新屏幕。我怎樣才能使文檔加載文本,而不是使用一堆或長的字符串?從文件中加載文本

感謝

回答

3

你可以看看的plist文件 - 他們可以很容易地加載到不同的集合對象,並在Xcode的plist編輯器進行編輯。

舉例來說,如果你組織你的數據字典,方便構造

+ (id)dictionaryWithContentsOfURL:(NSURL *)aURL 

從NSDictionary的,因爲你需要將你提供儘可能多的方便字符串。

如果您認爲字符串主要是數據而不是UI元素,則此方法很有用。

更新:

由於@Alex尼科爾認爲,這裏是你如何能做到這在實踐中:

要創建plist文件:

  • 在您的Xcode項目中,實例在支持文件組中,選擇新文件>資源>屬性列表
  • 您可以將文件保存在en.lproj中,以幫助本地化
  • 在屬性列表編輯窗格中,選擇添加行(或只是回車)
  • 輸入一個密鑰名稱(例如user1)和值(比如「喬」)

要閱讀內容:

NSURL *plistURL = [[NSBundle mainBundle] URLForResource:@"Property List" withExtension:@"plist"]; 

NSLog(@"URL: %@", plistURL); 

NSDictionary *strings = [NSDictionary dictionaryWithContentsOfURL:plistURL]; 

NSString *user1 = [strings objectForKey:@"user1"]; 

NSLog(@"User 1: %@", user1); 
+0

我還會提到如何在Xcode中創建Plist資源,以及如何將這樣的資源文件加載爲NSDictionary。 – 2011-12-25 22:54:49

0

一個plist中,JSON字符串和SQLite數據庫走進一家酒吧......

哎呀!我的意思是這三個最明顯的選擇。 JSON字符串可能是最容易創建和「傳輸」的,儘管將整個內容加載到NSDictionary和/或NSArray中是最實際的,因爲每個字符串都被訪問時從文件讀取。

對於大量(數千個)字符串,SQLite數據庫是最通用,速度最快,存儲效率最高的,但需要花費一些努力來設置它。

0

在我的其他答案中,如果您的文本大部分被視爲數據,我建議使用字典。但是,如果您的字符串是UI元素(警告文本,窗口標題等),則可能需要查看strings文件和NSBundle對它們的支持。

字符串文件非常適合本地化,格式解釋爲here

到App閱讀到您,使用這樣的:

NSString *text1 = NSLocalizedStringFromTable(@"TEXT1", @"myStringsFile", @"Comment"); 

如果你打電話給你的文件Localizable.strings,你甚至可以用一個簡單的形式:

NSString *str1 = NSLocalizedString(@"String1", @"Comment on String1"); 

一個有益討論here - 有點舊,但仍然有用。