2017-07-18 29 views
0

我現在用的是CrossDownManager插件Xamarin窗體 Here 當我運行在Android上它處理預期的方法。在iOS上,Debug.Writeline("Success!")不會像在Android上那樣受到打擊。Xamarin形式 - iOS設備不處理正確

下面是代碼:

void ViewImage(string imageLink) 
    { 
     var downloadManager = CrossDownloadManager.Current; 
     downloadManager.PathNameForDownloadedFile = new System.Func<IDownloadFile, string>(file => 
        { 
         string path = DependencyService.Get<IImageSaver>().Save("YHTS" + DateTime.Today.Ticks.ToString() + ".jpg"); 
         Debug.WriteLine("Success!"); 
          return path; 
         }); 

     try 
     { 
      var file = downloadManager.CreateDownloadFile(imageLink); 
      Debug.WriteLine("file created"); 
      downloadManager.Start(file); 
      Debug.WriteLine("downloadstarted"); 
     } 
     catch (Exception e) 
     { 
      Debug.WriteLine(e.ToString()); 
     } 
    } 

對我的生活中,我想不通,爲什麼不處理該代碼塊。有任何想法嗎?

回答

1

這是一個有趣的問題,因爲技術上你的代碼應該按預期工作。我做了一個小挖,發現回答過類似的問題here.

你的選擇是很多......包括:

DEBUG預處理程序,你在你的問題顯示。

使用System.Diagnostic.Debug.WriteLine:向調試任何調用*將由編譯器被移除由於 [條件(「調試」)]特性 施加。

創建自己的「記錄儀」類作爲一個包裝到標準輸出作家和 [條件(「DEBUG」)]它

使用Fody並重新編織組件刪除/ NOP /重定向 的WriteLine我這樣做是爲了將呼叫重定向到內部日誌中,並根據 崩潰或用戶stat請求,將此日誌轉發給我們的崩潰報告 服務器。等.....

因此,需要考慮幾個方案,我見過的共同建議之一是使用完全合格的參考爲WriteLine();這樣:

System.Console.WriteLine("woop woop"); 

我建議首先嚐試以上方法。