【问题标题】:How to store strings in external file for app-wide use (iOS)如何将字符串存储在外部文件中以供应用程序范围使用(iOS)
【发布时间】:2012-07-22 21:48:43
【问题描述】:

我正在创建一个 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 中有一个“字符串文件”,但我认为它仅用于语言本地化。

【问题讨论】:

  • 虽然字符串文件对本地化很有用,但我认为在本地化环境之外使用它们并没有什么问题。

标签: objective-c ios xcode string nsstring


【解决方案1】:

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

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

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

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

【讨论】:

  • 我终于完成了更改 .strings 文件的代码,它运行良好。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 2014-02-03
  • 1970-01-01
相关资源
最近更新 更多