【问题标题】:NSURL returns null, stringByAddingPercent... returns a nightmareNSURL 返回 null,stringByAddingPercent... 返回噩梦
【发布时间】:2011-07-19 23:33:58
【问题描述】:

我会尽量快点,我还是个新手,但我通常可以弄清楚一些事情,这个问题让我发疯。我在网站上有一个 XML,将其解析为表格,单击项目,将链接加载到 webView,然后开始问题...

    -(void)viewDidLoad {
NSString *str = [NSString stringWithFormat:@"%@", [item objectForKey:@"link"]];
NSURL *url = [NSURL URLWithString = str];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest = request];
}

如果你是 NSLog *str,那很好。如果你 NSLog URL ,它是空的。问题显然是使用 objectForKey,否则其他一切都有效。现在如果我

NSURL *url = [NSURL URLWithString = [str stringByAddingPercentEscapesUsingEncoding:...

添加 NSUTF 或 NSASCII,用于 URL 的 NSLog 添加

%0A%20%20%20%20%20%20%20%20%0A%20%20%0A%20%20

结束我的价值。因此,如果值为 aq1sw2de3,则 nslog 将为

aq1sw2de3%0A%20%20 etc.

我只是在查看 mac 屏幕时输入的,假设代码中不存在所有拼写错误。我已经尝试了很多不同的方法来将此 URL 传递给 webView,但我的结果要么是 NULL,要么就是那些该死的胡言乱语。我是在浪费时间做我不能做的事情吗?我是不是走错路了?我已经搜索了几个小时,我看到的所有问题都是由于它们传递的字符串或 url 的格式(空格和 | 导致错误),但我的链接值只是 A 到 Z 和 0 到 9,就是这样。

【问题讨论】:

    标签: iphone nsstring nsurl


    【解决方案1】:

    “%20”和“%0A”分别是空格和制表符的百分比转义序列。检查您的字符串末尾是否有一些额外的空格。

    【讨论】:

    • 这让我大吃一惊,我已经检查并再次检查以确保没有多余的间距。但至少我现在有一些事情要做,非常感谢。我会让你知道会发生什么。
    【解决方案2】:

    不知何故,您的字符串正在获取一些额外的空格。如果您只是需要修剪它,请尝试:

    NSURL *url = [NSURL URLWithString:
                 [[str stringByAddingPercentEscapesUsingEncoding: NSUTF8Encoding]        
                 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
    

    【讨论】:

    • 我会尝试,或者至少记住这一点,但问题显然来自我制作的 XML,所以我需要修复它。
    【解决方案3】:

    斯科特是对的。查看 NSCharacterSet 以获得一组恒定的空白字符,您可以使用它来修剪字符串。您可以使用带有空白集的 NSString 调用 stringByTrimmingCharactersInSet 来删除不需要的字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 2019-09-13
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 2011-11-07
      相关资源
      最近更新 更多