如何在 Swift 3 中使用 UnsafeMutablePointer<UInt>?

Posted

技术标签:

【中文标题】如何在 Swift 3 中使用 UnsafeMutablePointer<UInt>?【英文标题】:How to use the UnsafeMutablePointer<UInt> in Swift 3? 【发布时间】:2017-03-08 17:49:09 【问题描述】:
if let fileObject = NSString(contentsOfFile: strBundle, usedEncoding:Int32?

每次我尝试解决这个问题时,我都会感到更加沮丧!请帮我!我不确定我需要在“usedEncoding:”参数中填写什么。

这是它给我的错误:

无法转换“Int32?.Type”类型的值(又名 'Optional.Type') 到预期的参数类型 'UnsafeMutablePointer?'

【问题讨论】:

如果是这样,那么您对我如何解决它有什么想法吗? 您能在 sn-p 中添加更多代码吗? 你为什么使用 Foundation 方法而不是 Swift 方法?为什么不使用String(contentsOfFile:) which throws 它的错误? 【参考方案1】:

像这样:

let f = Bundle.main.url(forResource: "myFile", withExtension: "txt")!
var enc : String.Encoding = .ascii // dummy value
let s = try! String(contentsOf: f, usedEncoding: &enc)

根据需要进行修改(例如,在 do/catch 构造中使用真实的 try 等);示例代码只是为了让您重新开始。

【讨论】:

很高兴快速看到答案,而不是 Foundation

以上是关于如何在 Swift 3 中使用 UnsafeMutablePointer<UInt>?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 3 中使用 NSLocale 获取国家代码

如何在 Swift 3 中使用 UnsafeMutablePointer?

如何在 Swift 3.0 中使用 keysSortedByValue?

如何使用 Swift 3 在 UIView 中覆盖 requiresConstraintBasedLayout?

如何在 swift 3 中使用现有的 SQLite? (FMDB)

我如何在 XCODE 8、Swift 3 中使用 UIAutomation