如何在外部文件中存储字符串以供应用程序范围内使用(iOS)

时间:2012-07-22 21:48:44

标签: objective-c ios xcode string nsstring

我正在创建一个iOS应用程序,作为其功能的一部分,在UIWebView中加载许多网页。

为了便于编辑和分组,我想在外部文件中列出每个URL字符串,然后在应用程序中访问该字符串。例如,字符串文件可能如下所示:

NSString *google = @"http://www.google.com";
NSString *stackOverflow = @"http://www.stackoverflow.com";
NSString *cnn = @"http://www.cnn.com";
NSString *facebook = @"https://www.facebook.com"

在核心应用程序代码中,我会告诉UIWebview加载stackOverflow中包含的URL。这样,如果StackOverflow决定改变他们的URL(这是一个假设的例子),我可以轻松地更改外部字符串文件中的URL,而不用担心核心应用程序代码。

我该怎么办?我知道Xcode中有一个“字符串文件”,但我认为这只用于语言本地化。

1 个答案:

答案 0 :(得分:3)

即使加载非本地化字符串资源,您也可以使用与本地化字符串相同的基础结构。因此,对于iOS,如果将WebLinks.strings文件放在应用程序包的顶层,则它将被视为字符串资源的非本地化版本。如果没有找到适当的本地化字符串资源,每当您使用任何系统函数来检索本地化字符串时,bundle的加载代码会自动选择相应的非本地化字符串。因此,例如,您可以将WebLinks.strings设置为应用程序包顶层的标准.strings文件,其中包含以下行:

/* Google's URL */
"googleURL" = "http://www.google.com";

您可以使用以下代码检索字符串:

NSString *google = NSLocalizedStringFromTable(@"googleURL", @"WebLinks", @"Google's URL");