【问题标题】:Cannot convert value of type 'UInt' to expected argument type 'UnsafeMutablePointer<UInt>'无法将“UInt”类型的值转换为预期的参数类型“UnsafeMutablePointer<UInt>”
【发布时间】:2016-03-18 16:25:37
【问题描述】:

我正在尝试从 URL 可访问的内容中初始化一个字符串:

actualresponse.response = String(contentsOfURL: url, usedEncoding: NSUTF8StringEncoding)

我收到以下错误,指向 usedEncoding:

无法将“UInt”类型的值转换为预期的参数类型“UnsafeMutablePointer”

谁能告诉我为什么会抛出这个错误以及如何修复它?

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    有两种相似但不同的方法可能会出错。

    • 通常的方法是

      init(contentsOfURL url: NSURL,
          encoding enc: UInt) throws
      

      encoding参数采用NSStringEncoding值来指定编码,例如

      let string = try? String(contentsOfURL:url, encoding:NSUTF8StringEncoding)
      

    • 第二种方法检索通过将指针作为usedEncoding参数传递来从文件中获取编码

      init(contentsOfURL url: NSURL,
          usedEncoding enc: UnsafeMutablePointer<UInt>) throws
      

      文档说:

      返回时,如果 url 读取成功,则包含使用的编码 解释数据。

      这意味着您必须传递一个指针,该指针将包含文件的确定编码。

      var encoding : NSStringEncoding = 0
      let string = try? String(contentsOfURL:url, usedEncoding:&encoding)
      

    【讨论】:

    • 谢谢。明白了@vadian。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多