2017-01-27 48 views
0

我有一個我想要使用的庫,但出現錯誤Invalid URL scheme for background downloads: (null). Valid schemes are http or https。有沒有一種方法可以調試哪個URL會導致此錯誤?Objective-C庫內部顯示無效的URL方案

我無權訪問此圖書館的源代碼。

當從NSURLSession返回此錯誤時,是否可以設置符號斷點?

或者我可以在瀏覽調用堆棧時查看調試器中的參數嗎?

+0

@Close voter:這不是一個關於「爲什麼NSURLSession不工作?」的問題,這是一個關於調試應用程序的問題,這只是我給的一個示例用例(封閉源庫,試圖out參數)。如果您有關於我的問題的評論,請將其寫入評論中。 – vrwim

回答

1

既然你已經知道符號斷點,當然。這將是關係到啓動下載任務的NSURLSession方法之一:

downloadTaskWithURL:completionHandler: 
downloadTaskWithRequest:completionHandler: 

其中之一幾乎肯定將不得不最終被調用。

關於查看調試器中的參數,您需要查閱Clark Cox的光榮圖表:Inspecting Obj-C parameters in gdb。它很快涵蓋了每個平臺上的參數傳遞方式。

+0

我正在調試iPhone 6S,據我所知,它使用手臂。我嘗試做'po $ r0',但是我得到'錯誤:使用未聲明的標識符'$ r0''。但是,'po *(id *)($ sp)'返回'<__ NSMallocBlock__:0x17009d8d0>'任何想法? – vrwim

+0

顯然,我不得不用'x's替換所有'r's,所以它變成了'po $ x0' – vrwim

+0

是的......我之前在lldb中遇到過這個問題。但我認爲它實際上會幫助你用$ arg1(etc)別名。 –