我正在制作Iphone饮水卡游戏应用。 所有的卡都意味着不同的东西,我希望用户能够按下信息按钮,然后显示一个新屏幕,其中包含有关当前卡的信息。如何创建一个文档来加载文本,而不是使用一堆og长字符串?
由于
答案 0 :(得分:3)
您可以查看plist文件 - 它们可以很容易地加载到各种集合对象中,并使用Xcode中的plist编辑器进行编辑。
例如,如果您将数据组织为字典,便利构造函数
+ (id)dictionaryWithContentsOfURL:(NSURL *)aURL
来自NSDictionary的将为您提供所需数量的易于访问的字符串。
如果您认为字符串主要是数据而不是UI元素,则此方法很有用。
<强>更新强>
正如@Alex Nichol所建议的,以下是你在实践中如何做到这一点:
创建一个plist文件:
en.lproj
中,以帮助进行本地化user1
)和值(例如“Joe”)阅读内容:
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);
答案 1 :(得分:0)
一个plist,一个JSON字符串和一个SQLite数据库走进了一个吧......
糟糕!!我的意思是那些是最明显的三个选择。 JSON字符串可能是最容易创建和“传输”的,尽管将整个事物加载到NSDictionary和/或NSArray中是最实际的,而不是在访问每个字符串时从文件读取。
对于非常大量(数千)的字符串,SQLite数据库是最常用的,速度/存储效率最高,但需要花费一些精力来设置它。
答案 2 :(得分:0)
在我的另一个答案中,如果您的文本主要被视为数据,我建议使用字典。但是,如果您的字符串是UI元素(警报文本,窗口标题等),您可能需要查看strings
个文件和NSBundle
对它们的支持。
字符串文件非常适合本地化,格式说明为here。
要将它们读入您的应用,请使用以下内容:
NSString *text1 = NSLocalizedStringFromTable(@"TEXT1", @"myStringsFile", @"Comment");
如果您调用文件Localizable.strings
,您甚至可以使用更简单的格式:
NSString *str1 = NSLocalizedString(@"String1", @"Comment on String1");
有用的讨论here - 有点旧,但仍然有用。