【问题标题】:UIWebView LoadData is not accepting Nil values for textEncodingName and baseURLUIWebView LoadData 不接受 textEncodingName 和 baseURL 的 Nil 值
【发布时间】:2015-08-18 23:55:54
【问题描述】:

直到 Swift 1.2 版本,UIWebView LoadData 接受 nil 值,但 Swift 2.0 抛出错误“Swift 不符合协议 NilLateralConvertible”。

Swift 1.2:工作正常

self.webView.loadData(tempData!, MIMEType: "application/pdf", textEncodingName: nil, baseURL: nil)

Swift 2.0:抛出错误

self.webView.loadData(tempData!, MIMEType: "application/pdf", textEncodingName: nil, baseURL: nil)

【问题讨论】:

  • 有什么线索吗?使用带有“NSURL() 作为 URL”的 Swift 3+ 时收到警告

标签: ios uiwebview swift2


【解决方案1】:

这对我有用:

webView.loadData(pdfDownload, MIMEType: "application/pdf", textEncodingName: "", baseURL: NSURL())

【讨论】:

    【解决方案2】:

    斯威夫特 3:

    self.webView.loadData(tempData!, MIMEType: "application/pdf", textEncodingName: "UTF-8", baseURL: NSURL() as URL)
    

    【讨论】:

    • 这会编译,但会在运行时崩溃。
    【解决方案3】:

    默认的字符编码是UTF-8所以你可以这样做:

    self.webView.loadData(tempData!, MIMEType: "application/pdf", textEncodingName: "UTF-8", baseURL: NSURL())

    【讨论】:

      【解决方案4】:

      Apple 更新了声明,它们现在需要非 nil 值。为了 Swift(和 ObjC)的利益,他们在声明中添加了现实。

      - (void)loadData:(NSData   * nonnull)data
              MIMEType:(NSString * nonnull)MIMEType
      textEncodingName:(NSString * nonnull)encodingName
               baseURL:(NSURL    * nonnull)baseURL
      

      【讨论】:

      • 那么,当我们不关心时,我们应该为 baseURL 提供什么?
      猜你喜欢
      • 2011-07-02
      • 2013-09-07
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      相关资源
      最近更新 更多