【问题标题】:Declaring self-referencing pointers in Swift [duplicate]在 Swift 中声明自引用指针
【发布时间】:2014-07-08 09:28:01
【问题描述】:

这个 Obj-C 代码在 swift 中的等价物是什么?

我在猜测 CMutableVoidPointer 的一些东西

static void *CapturingStillImageContext = &CapturingStillImageContext;

【问题讨论】:

    标签: objective-c pointers swift self


    【解决方案1】:

    CMutableVoidPointer 在 Beta 3 中不再可用。有 UnsafePointerConstUnsafePointer - 您可以这样声明:

    let CapturingStillImageContext = UnsafePointer<()>()
    

    【讨论】:

    • 回答了,非常感谢。
    • 这只会创建一个 nil 指针 - 但不会创建一个使用唯一值初始化的指针。
    【解决方案2】:

    大概是这样的:

    var CapturingStillImageContext: COpaquePointer = nil
    withUnsafePointer(&CapturingStillImageContext) {
        CapturingStillImageContext = COpaquePointer($0) }
    

    【讨论】:

      【解决方案3】:

      我一直在使用这种技术,但如果能找到更优雅的解决方案就好了:

      var SelfReferencingKey = initialize_SelfReferencingKey()
      
      func initialize_SelfReferencingKey() -> UnsafePointer<()> {
          return withUnsafePointer(&SelfReferencingKey, { UnsafePointer($0) } )
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-17
        • 1970-01-01
        • 2014-12-01
        • 2015-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多