年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2891|回复: 1

为什么[NSURL URLWithString:string]为nil ?

[复制链接]
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2015-6-5 12:21:52 | 显示全部楼层 |阅读模式
    网络请求的基本套路:
    1、NSString *string = @"http://www.yusian.com";
    2、NSURL *url = [NSURL URLWithString:string];
    3、NSURLRequest *request = [NSURLRequest requestWithURL:url];
    4、[self.webView loadRequest:request];

    然而有时候页面却没有任何内容,何解?通过段点才发现url为nil,为毛?!
    这个时候可以试下将第一步的string进行encoding一下,即:
    string = [string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    或许就可以了哦,试试吧!

    最好是写一个NSString的分类,提供一个转换方法,方便使用
    - (NSString *)encodingString
    {
        return [self stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    }
    这样一来,第二步可以直接改为
    2、NSURL *url = [NSURL URLWithString:[string encodingString]];

  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

     楼主| 发表于 2015-6-5 12:24:08 | 显示全部楼层
    有时候重复encoding也会造成url为空哦,所以还有一个方法,即在第二步进行判断,如果url==nil再encoding
    if (nil == url) url = [NSURL URLWithString:[string encodingString]];
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-12-5 03:00 , Processed in 0.044032 second(s), 18 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表