0

我想在我的应用程序中定义一个基本 URL:

#define kBaseURL @"http://mydomain.com/"

并且还能够以此为基础创建其他 URL

#define kProductsURL @"/products"

我知道我可以做这样的事情:

NSString *urlString = [NSString stringWithFormat:@"%@%@", kBaseURL,kProductsURL];

如何更改kProductsURL我可以使用kProductsURL的必须进行字符串格式化?

我知道你可以用这些#define语句做很多事情,但我一直找不到好的教程或文档。

有人可以指出我正确的方向吗?

4

2 回答 2

3

您可以简单地连接#defines 如下:

#define kBaseURL     @"http://mydomain.com"
#define kProductsURL kBaseURL@"/products"

// kProductsURL becomes http://mydomain.com/products

编辑:基于其他答案和评论......

然而,一些开发人员认为使用#define是一种代码气味。另一种方法是使用consts。#define这比在编辑内容时使用它具有优势,因为const它不需要编译整个项目。

URLs.h文件:

extern NSString * const kBaseURL;
extern NSString * const kProductsPath;
NSString *GenerateMyURL(NSString *path);

URLs.m文件:

NSString * const kBaseURL = @"http://mydomain.com";
NSString * const kProductsPath = @"/products";

NSString * GenerateMyURL(NSString *path)
{
    return [kBaseURL stringByAppendingPathComponent:path];
}

用法:

NSString *productsURL = GenerateMyURL(kProductsPath);
// Do whatever...
于 2013-09-19T12:11:26.630 回答
1

你可以这样做:

#define kBaseURL(extension)  [NSString stringWithFormat:@"http://mydomain.com/%@", extension]

并在您的代码中使用:

NSString *urlString = kBaseURL(kProductsURL);
// urlString becomes http://mydomain.com/products

++

于 2013-09-19T12:14:16.780 回答