如何检查在 swift 中声明的 UnsafeMutablePointer<ObjCBool​​> 类型的变量的值? [复制]

Posted

技术标签:

【中文标题】如何检查在 swift 中声明的 UnsafeMutablePointer<ObjCBool​​> 类型的变量的值? [复制]【英文标题】:How do I check the value of a variable declared in swift of type UnsafeMutablePointer<ObjCBool>? [duplicate] 【发布时间】:2018-08-19 01:01:34 【问题描述】:

我需要检查从 Swift 中的函数返回的变量的值,该变量的类型为 UnsafeMutablePointer?。

声明如下:

    var isDirectory: UnsafeMutablePointer<ObjCBool>?

当我打印出来时:

    print(isDirectory)

我明白了:

我不太擅长将 Swift 与 Objective-C 混合使用。任何帮助将不胜感激。

这是我实际的完整代码:

    let directoryURL: URL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)

    let pathOldLocalStorage: String = directoryURL.path + "/OldLocalStorage"

    FileManager.default.createFile(atPath: pathOldLocalStorage, contents: nil, attributes: nil)

    var isDirectory: UnsafeMutablePointer<ObjCBool>?

    let fileExists: Bool = FileManager.default.fileExists(atPath: pathOldLocalStorage, isDirectory: isDirectory)

    print("fileExists=", fileExists, "isDirectory=", isDirectory as Any)

这是调试窗口的结果:

fileExists=true isDirectory=nil

【问题讨论】:

【参考方案1】:

你需要这样称呼它:

var isDirectory: ObjCBool = false

let fileExists: Bool = FileManager.default.fileExists(atPath: pathOldLocalStorage, isDirectory: &isDirectory)

if fileExists 
    print("isDirectory=\(isDirectory)")

【讨论】:

非常感谢。我真的很感激。 @ShinehahGnolaum,您可以在this thread 中找到更多信息。

以上是关于如何检查在 swift 中声明的 UnsafeMutablePointer<ObjCBool​​> 类型的变量的值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 3.1 中,不推荐使用 UnsafeMutablePointer.initialize(from:)

如何在 Swift 中正确声明变量?

如何在 Swift 3 中使用 UITextFields 创建开关表达式

如何在 swift 中声明一个“受保护”变量

如何在 Swift 中声明 typedef

哪一个更高性能:使用Swift Array.contains函数或使用if(.. || .. || ..)进行检查?