我正在制作Iphone饮料卡游戏应用程序。 所有的卡都意味着不同的东西,我希望用户能够按下信息按钮,然后显示有关当前卡的信息的新屏幕。我怎样才能使文档加载文本,而不是使用一堆或长的字符串?从文件中加载文本
感谢
我正在制作Iphone饮料卡游戏应用程序。 所有的卡都意味着不同的东西,我希望用户能够按下信息按钮,然后显示有关当前卡的信息的新屏幕。我怎样才能使文档加载文本,而不是使用一堆或长的字符串?从文件中加载文本
感谢
你可以看看的plist文件 - 他们可以很容易地加载到不同的集合对象,并在Xcode的plist编辑器进行编辑。
举例来说,如果你组织你的数据字典,方便构造
+ (id)dictionaryWithContentsOfURL:(NSURL *)aURL
从NSDictionary的,因为你需要将你提供尽可能多的方便字符串。
如果您认为字符串主要是数据而不是UI元素,则此方法很有用。
更新:
由于@Alex尼科尔认为,这里是你如何能做到这在实践中:
要创建plist文件:
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);
一个plist中,JSON字符串和SQLite数据库走进一家酒吧......
哎呀!我的意思是这三个最明显的选择。 JSON字符串可能是最容易创建和“传输”的,尽管将整个内容加载到NSDictionary和/或NSArray中是最实际的,因为每个字符串都被访问时从文件读取。
对于大量(数千个)字符串,SQLite数据库是最通用,速度最快,存储效率最高的,但需要花费一些努力来设置它。
在我的其他答案中,如果您的文本大部分被视为数据,我建议使用字典。但是,如果您的字符串是UI元素(警告文本,窗口标题等),则可能需要查看strings
文件和NSBundle
对它们的支持。
字符串文件非常适合本地化,格式解释为here。
到App阅读到您,使用这样的:
NSString *text1 = NSLocalizedStringFromTable(@"TEXT1", @"myStringsFile", @"Comment");
如果你打电话给你的文件Localizable.strings
,你甚至可以用一个简单的形式:
NSString *str1 = NSLocalizedString(@"String1", @"Comment on String1");
一个有益讨论here - 有点旧,但仍然有用。
我还会提到如何在Xcode中创建Plist资源,以及如何将这样的资源文件加载为NSDictionary。 – 2011-12-25 22:54:49