无法转换类型&#39; UInt&#39;的值预期参数类型&#39; UnsafeMutablePointer <uint>&#39;

时间:2016-03-18 07:55:58

标签: ios swift

我正在尝试从URL可访问的内容初始化String:

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

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

  

无法转换类型&#39; UInt&#39;预期参数类型&#39; UnsafeMutablePointer&#39;

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

1 个答案:

答案 0 :(得分:8)

有两种相似但不同的方法可以弄错。

  • 通常的方法是

    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)