#define URL作为每个.m文件中的字符串?

时间:2012-11-06 14:36:59

标签: objective-c string url concatenation c-preprocessor

我仍在尝试学习Objective-C并拥有一个从Web服务器下载文档的应用程序。 这些文件在十个预定义的文件夹中,每个类别都有单独的类

我当前访问文件的方式是,在每个.m文件的顶部,我将父文件夹的URL定义为字符串,子文件夹作为单独的字符串:

#define WEBHOST @"http://webserverURL/mainfolder"
#define FOLDER @"subfolderName"

然后将它们连接起来:

NSString *pathString = [NSString stringWithFormat:@"%@%@", WEBHOST, FOLDER];
NSURL *documentsDirectoryURL = [NSURL URLWithString:pathString];
NSData *documentsHTMLData = [NSData dataWithContentsOfURL:documentsDirectoryURL];

然后我用hpple解析HTML并根据需要进行处理。我不确定这是否是一种特别有效的技术,但它似乎做了我需要的。 然而,它似乎有点混乱,我想我错过了一些更简单或更有效的方法来实现这一目标。

我的问题:这是一种合理的做法,还是我犯了一种典型的新手犯罪,使事情变得比他们需要的更复杂和混乱?

2 个答案:

答案 0 :(得分:7)

嗯,对于一个你可以做到以下几点:

#define WEBHOST @"http://webserverURL/mainfolder"
#define FOLDER WEBHOST @"/subfolderName"

它应该将webhost名称连接到文件夹名称。可以保存一行代码。

答案 1 :(得分:2)

您的方法很好,但我建议将所有定义放入单个头文件中并包含该文件。您必须重新定义可能导致错误的WEBHOST

urldefs.h:

#define WEBHOST @"http://webserverURL/mainfolder"
#define SUBFOLDER1 @"subfolder1Name"
...
#define SUBFOLDER2 @"subfolder2Name"
#define SUBFOLDERn @"subfoldernName"