我正在使用ASIHTTP并尝试为网站执行GET请求:
NSURL *url = [[NSURL URLWithString:@"/verifyuser.aspx?user=%@" relativeToURL:@"http://domain.com"],userName retain];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setTemporaryFileDownloadPath:@"myfile2.txt"];
[request setDownloadDestinationPath:@"myfile.txt"];
[request startSynchronous];
但是,当我在[request startSynchronous]上放置一个断点并进入调试器时,请求对象的url值等于userName变量。我正在尝试将userName变量插入到字符串中,然后将其用作url,因此我的NSURL声明中的某些内容不正确。
感谢您的帮助!
答案 0 :(得分:9)
您的代码不正确,您没有正确进行字符串格式化,它应如下所示:
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"/verifyuser.aspx?user=%@", userName] relativeToURL:@"http://domain.com"];
请注意,您不需要保留网址,因为您只是将其传递给请求。
答案 1 :(得分:0)
此NSURL方法不期望格式字符串。 Objective-C编译器对方法所期望的内容做了相当微弱的假设,这可能是你混淆的根源。
改为使用[NSString stringWithFormat:@"..."]
。
目前,您使用的语法解析为NSURL* url = [(NSURL* object), userName retain];
,正如您可能猜测的那样,无效。事实上,我真的很想知道这是怎么编的。