gpt4 book ai didi

iphone - 带有变量的 NSURL 中的空格不会加载

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:35 24 4
gpt4 key购买 nike

大家好我有一个 objective-c 困境 :P我是 objective-c 的新手,我曾尝试寻找答案,但无济于事。

所以,这是我的情况。我现在将代码放在这里,否则它就没有多大意义了。我正在放下我需要的东西,这段代码现在不起作用,稍后我会找到原因

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMMM"];
NSString *monthString = [formatter stringFromDate:date];
NSLog(@"MONTH STRING %@", monthString);
NSString *baseURLStr = @"http://www.mysite.ca/example";
NSURL *url = [NSURL URLWithString:[baseURLStr stringByAppendingFormat:@"announcements%20%@%20%d%20carson.ashx", monthString]];

[webView loadRequest:[NSURLRequest requestWithURL:url]];
[NSCalendar release];

所以,这就是问题所在...编码(HTML):stringByAppendingFormat:@"announcements%@%20%d%20example.ashx", monthString, day]];

解码后是这样的

stringByAppendingFormat:@"announcements %@ %d example.ashx"]];

这样应该更容易理解..当我使用 %20 运行时,它显示“找不到请求的文档”当我使用空格 ("") 运行时,它只是白色的,没有任何加载。

我知道 URL 是正确的,如果我取出变量,问题完全相同,但是当我将 %20 移回 baseURLStr 时,它可以正常工作并加载,所以这是要做的事情使用 HTML 代码和“stringbyAppendingFormat”字符串。

感谢任何帮助!

谢谢你的时间

-凯尔

最佳答案

每当 NSURL 在初始化后返回 nil (0x0) 时,它几乎总是与不正确的 url 字符串相关。它对获取格式正确的字符串非常挑剔。

我的建议是简单地构建你的字符串,没有任何转义或 url 编码,然后简单地调用

myUrlString = [myUrlString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];

这是它的标题声明

- (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc NS_AVAILABLE(10_3, 2_0);

这样,我总是知道我按照 NSURL 类需要的方式格式化了它。

举个例子

NSString *sUrl = @"http://www.myside.ca/example/announcements carson.ashx"; //notice the embedded space
sUrl = [sUrl stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [NSURL URLWithString:sUrl];

关于iphone - 带有变量的 NSURL 中的空格不会加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5845425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com