Thread 5:EXC_BAD_INSTRUCTION(code=EXC_1386_INVOP,subcode=0x0)

廢話不說,直接說錯誤的原因

這是我的代碼

dispatch_async(    dispatch_get_global_queue(0, 0), ^{
        NSURLSessionDownloadTask *task = [[NSURLSession sharedSession] downloadTaskWithURL:[NSURL URLWithString:@"http://api.breadtrip.com/hunter/products/more/?city_name=北京&lat=40.02935864560207&lng=116.337422268&sign=eb90993b3a68c75dadaacb4a9aa00c3b&start=0"] completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            
              id anyObject = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:location] options:NSJSONReadingAllowFragments error:&error];
            dispatch_async(dispatch_get_main_queue(), ^{
                NSLog(@"anyObject:%@",anyObject);
                NSLog(@"error:%@",error);
            });
        }];
        [task resume];
    });

我這是使用 NSURLSession 來請求網絡,返回 JSON 格式的數據,從寫法上來看應該是沒有問題的,但是一運行程序就會崩潰.


屏幕快照 2016-01-12 22.45.12.png

這是崩潰日志

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'

解決思路:

1.通過打斷點的方式來調試程序:


屏幕快照 2016-01-12 22.52.20.png

這是會發(fā)現(xiàn)當走到 53行代碼的時候程序直接崩潰,于是查看virables View 變量打印區(qū)域

2.發(fā)現(xiàn)犯了一個低級錯誤,將 URL 中帶有中文的鏈接直接在編譯器中請求,如圖:提示不支持的 URL .
但是這種帶有中文的 URL 在瀏覽器中是能直接打開的,但是 Xcode 不支持.


屏幕快照 2016-01-12 22.54.27.png

3.解決方法:
將 URL 中含有中文的參數拼接成非中文的類型,這里只介紹一種方法,將中文通過百分號轉碼的方式,轉為系統(tǒng)能夠識別的 URL ,格式:%E5%8C%97%E4%BA%AC

NSString *u = @"北京";
    NSString *e = [u stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet controlCharacterSet]];
    NSLog(@"%@",e);

4.在將這個變量拼接到 URL 的參數中對應的位置即可.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評論 19 139
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,628評論 30 472
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,740評論 18 399
  • 今晚給寶寶讀了《皇帝的新裝》這個童話故事,在讀的過程中,6歲的寶寶就覺得這個皇帝好搞笑啊。問她為什么說皇帝搞笑?。?..
    努力紅閱讀 278評論 0 0
  • 我們的親密關系經歷了幻滅、內省最終會到達啟示階段。但是我們的親密關系并不是一定按照幻滅、內省、啟示的順序發(fā)生。我...
    宋鴿閱讀 275評論 0 0

友情鏈接更多精彩內容