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