1

我对我的移动应用程序中的所有 URL 进行硬编码,我知道这不是一个好主意。例如,如果我需要移动域名,我需要在每个页面上将应用程序中的所有 URL 从 www.oldname.com 重命名为 www.newname.com。

我不确定将它们存储在何处以及如何存储它们,以便我可以在单个页面上修改此信息并使其在所有页面中自动更改。

在 PHP 中,我将创建一个包含变量的单个文件,这些变量将包含在所有页面中。但是,我不确定这是如何在 Objective-c 中完成的。你怎么做呢?

4

5 回答 5

3

您可以创建一个常量文件并将其包含在列出 URL 的所有其他文件中。

创建一个文件,例如,constants.h,您可以在其中放置所有常量。在 constants.h 你可以这样写:

#define kApiBaseUrl @"https://myapi.mydomain.com"

在您的其他文件中,您可以像以下示例一样访问它:

NSURL *url = [NSURL URLWithString:kApiBaseUrl];

可能这就像您在 PHP 中所做的那样。您还可以在应用程序的 PLIST 中设置预定义的 URL,但这可能更容易。

于 2013-05-25T22:24:44.047 回答
2

类似于 edwardmp 的响应,也可以创建一个 Constants.h 文件并定义一些静态常量字符串。

static NSString *const kSiteRootURL = @"http://www.someurl.com";
于 2013-05-25T22:41:25.090 回答
1

检查项目中的文件夹“Supporting Files”,您应该有一个名为“nameOfYourApp-Prefix.pch”的文件,然后您可以定义根 URL,例如

#define ROOT_URL    @"yourwebsite.com"

您可以从项目中的任何位置访问 ROOT_URL

于 2013-05-25T22:32:10.897 回答
1

您可以将 URL 保存在属性列表文件中(文件 => 新文件 => 属性 ...)。你会有类似“config.plist”的东西。与其他属性文件类似,它是 key => value 文件,其中值可以是字符串、数组等。

使用 NSBundle 在你的应用中加载文件,比如

NSString *path = [[NSBundle mainBundle] pathForResource:@"config" ofType:@"plist"];
NSDictionary *config = [[NSDictionary alloc] initWithContentsOfFile:path];

这将带来一个好处,当您对 URL 进行任何更改时,您不必再次重新编译代码。

于 2013-05-25T22:33:52.513 回答
0

您可以将 NSString 添加到 .pch 文件中以包含在所有模块中。

于 2013-05-25T22:29:34.037 回答