Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c #在每个.m文件中将URL定义为字符串?_Objective C_String_Url_Concatenation_C Preprocessor - Fatal编程技术网

Objective c #在每个.m文件中将URL定义为字符串?

Objective c #在每个.m文件中将URL定义为字符串?,objective-c,string,url,concatenation,c-preprocessor,Objective C,String,Url,Concatenation,C Preprocessor,我仍在尝试学习Objective-C,并拥有一个从web服务器下载文档的应用程序。 这些文档在十个预定义的文件夹中,每个类别我都有单独的类 我当前访问文件的方式是,在每个.m文件的顶部,我将父文件夹的URL定义为字符串,子文件夹定义为单独的字符串: #define WEBHOST @"http://webserverURL/mainfolder" #define FOLDER @"subfolderName" 然后将它们连接起来: NSString *pathString = [NSStrin

我仍在尝试学习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,并根据需要进行处理。我不确定这是否是一种特别有效的技术,但它似乎满足了我的需要。 然而,这似乎有点混乱,我想我缺少了一些更简单或更有效的方法来实现这一点


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

好吧,你可以做以下一件事:

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

它应该将webhost名称连接到文件夹名称。可能会节省一行代码。

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

urldefs.h:

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

如果每个.m文件中的WEBHOST相同,请将其定义放在.h中,然后导入。这样,如果它发生变化,你就有一行要修改,而不是十行。啊,当然。我本应该知道但却忽略了。谢谢。我还至少建议:将Webhost定义放入pch文件中,这样就不需要在每个.m文件中重新定义它。是否使用以下命令连接Objective-C字符串文本:
@“第一位”“第二位”
?不确定,但我要尝试一下。。。。好的,它会生成一个X代码警告:“格式字符串不是字符串文字(可能不安全)”。。。但是是的,它确实有效。再次感谢,我在这里学到了一些很好的小技巧。@Robert:你确定用Objective-C字符串表示法(以
@
开头)代替C表示法吗?谢谢。这是否意味着创建一个名为urldefs的新NSObject文件,将定义放入urldefs.h文件中,根据需要导入并删除urldefs.m文件?@Robert No,您可以自己创建一个新的头文件。