无法将 'UInt' 类型的值转换为预期的参数类型 'UnsafeMutablePointer<UInt>'



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

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

我得到以下错误,指向使用的编码:

无法将类型为"UInt"的值转换为预期的参数类型"不安全可变指针"

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

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

  • 通常的方法是

    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)
    

最新更新