如何正确管理我的应用网址?

时间:2011-07-24 18:34:45

标签: iphone objective-c ios

我有一个很长的网址列表,我的应用用来从服务器检索数据。目前,每个网址都有自己的常量,即:

// constants.h
extern NSString * const profileUrl;

// constants.m
NSString * const profileUrl = @"http://api.site.com/profile";
.
.

这不是什么大不了的事,但如果我想改变基本网址,我必须进入并在每个常量中手动替换所有这些。如果可以的话,我想保持DRY哲学(不要重复自己)。就像我现在正在做的事情一样。

// constants.h
extern NSString * const baseUrl;
extern NSString * const profileUrl;

// constants.m
NSString * const baseUrl = @"http://api.site.com/";
NSString * const profileUrl = [NSString stringWithFormat:@"%@%@", baseUrl, @"profile"];

如果是这样,是否有一种标准的方式来有序地处理您的应用程序网址?您使用哪些技术可以让您的生活更轻松?

4 个答案:

答案 0 :(得分:0)

只需使用:

NSDictionary *profileURLS = [NSDictionary dictionaryWithValues:[NSArray yourArrayOfProfileURLS] forKeys:[NSArray yourArrayOfCorrespondingProfiles]];

NSString *baseURL = @"baseURLHere";
NSString *newURL = [baseURL stringByAppeningString:[profileURLS valueForKey: profileName]];

如果我理解正确的话,我认为这应该适合你正在做的事情

答案 1 :(得分:0)

我有一个基本网址,我保存在MyAppDelegate中:

在MyAppDelegate .h

extern NSString * const SERVER_URL;

在MyAppDelegate.m中

NSString *const SERVER_URL = @"http://111.11.11.1";

然后访问它只需导入MyAppDelegate.h

NSString *url = [SERVER_URL stringByAppendingString:@"/your_request"];

答案 2 :(得分:0)

我将它们保存在一个字符串文件中。这样,如果本地化应用的URL不同,那么很容易适应资源本地化。

答案 3 :(得分:0)

最简单的方法是使用宏:

#define FOOBAR_BASE @"http://www.example.com/"
#define FOOBAR_API_BAZ FOOBAR_BASE "baz"

您甚至可以使用NSString * const BarUrl = FOOBAR_BASE "baz";执行此操作。

如果你有一个“服务器”,这很好。当你有多个服务器要从同一个应用程序访问而不重新编译(dev / production?)时,它会变得更加混乱。

在我们的一个应用程序中,我们只有一个巨大的头文件,这比继承的代码库中到处散落的文字字符串要好得多......