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

我需要检查从 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

【问题讨论】:

    标签: swift


    【解决方案1】:

    你需要这样称呼它:

    var isDirectory: ObjCBool = false
    
    let fileExists: Bool = FileManager.default.fileExists(atPath: pathOldLocalStorage, isDirectory: &isDirectory)
    
    if fileExists {
        print("isDirectory=\(isDirectory)")
    }
    

    【讨论】:

    • 非常感谢。我真的很感激。
    • @ShinehahGnolaum,您可以在this thread 中找到更多信息。
    猜你喜欢
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多