我对我的移动应用程序中的所有 URL 进行硬编码,我知道这不是一个好主意。例如,如果我需要移动域名,我需要在每个页面上将应用程序中的所有 URL 从 www.oldname.com 重命名为 www.newname.com。
我不确定将它们存储在何处以及如何存储它们,以便我可以在单个页面上修改此信息并使其在所有页面中自动更改。
在 PHP 中,我将创建一个包含变量的单个文件,这些变量将包含在所有页面中。但是,我不确定这是如何在 Objective-c 中完成的。你怎么做呢?
我对我的移动应用程序中的所有 URL 进行硬编码,我知道这不是一个好主意。例如,如果我需要移动域名,我需要在每个页面上将应用程序中的所有 URL 从 www.oldname.com 重命名为 www.newname.com。
我不确定将它们存储在何处以及如何存储它们,以便我可以在单个页面上修改此信息并使其在所有页面中自动更改。
在 PHP 中,我将创建一个包含变量的单个文件,这些变量将包含在所有页面中。但是,我不确定这是如何在 Objective-c 中完成的。你怎么做呢?
您可以创建一个常量文件并将其包含在列出 URL 的所有其他文件中。
创建一个文件,例如,constants.h,您可以在其中放置所有常量。在 constants.h 你可以这样写:
#define kApiBaseUrl @"https://myapi.mydomain.com"
在您的其他文件中,您可以像以下示例一样访问它:
NSURL *url = [NSURL URLWithString:kApiBaseUrl];
可能这就像您在 PHP 中所做的那样。您还可以在应用程序的 PLIST 中设置预定义的 URL,但这可能更容易。
类似于 edwardmp 的响应,也可以创建一个 Constants.h 文件并定义一些静态常量字符串。
static NSString *const kSiteRootURL = @"http://www.someurl.com";
检查项目中的文件夹“Supporting Files”,您应该有一个名为“nameOfYourApp-Prefix.pch”的文件,然后您可以定义根 URL,例如
#define ROOT_URL @"yourwebsite.com"
您可以从项目中的任何位置访问 ROOT_URL
您可以将 URL 保存在属性列表文件中(文件 => 新文件 => 属性 ...)。你会有类似“config.plist”的东西。与其他属性文件类似,它是 key => value 文件,其中值可以是字符串、数组等。
使用 NSBundle 在你的应用中加载文件,比如
NSString *path = [[NSBundle mainBundle] pathForResource:@"config" ofType:@"plist"];
NSDictionary *config = [[NSDictionary alloc] initWithContentsOfFile:path];
这将带来一个好处,当您对 URL 进行任何更改时,您不必再次重新编译代码。
您可以将 NSString 添加到 .pch 文件中以包含在所有模块中。