2011-12-25 47 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 - 有点旧,但仍然有用。