objective-c - 如何在外部文件中存储字符串以在整个应用范围内使用(iOS)

标签 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中有一个“字符串文件”,但是我认为这仅用于语言本地化。

最佳答案

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

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

您可以使用以下代码来检索字符串:
NSString *google = NSLocalizedStringFromTable(@"googleURL", @"WebLinks", @"Google's URL");

关于objective-c - 如何在外部文件中存储字符串以在整个应用范围内使用(iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11604231/

相关文章:

iphone - 是否可以在应用程序运行时即时更改 Tabbar 项目文本/图标?

ios - 使用 x-apple-reminder ://to launch the Reminders app in iOS

ios - 在填充的白色圆圈 (UIButton) 内创建一个黑色细圆圈(未填充)

ios - 通过类别覆盖 Objective c 中的方法

ios - 具有方向的单元格位置

ios - UIScrollView 框架随机更改

xcode - 录音语义问题

ios - 如何在 NSURL get 请求中传递查询项?

iphone - 如何替换整个操作系统的默认字体

ios - 以编程方式创建可从多个 View 使用的 UISearchBar