Объявления, ссылающиеся сами на себя указатели в Swift [дубликат]


На этот вопрос уже есть ответ здесь:

Каков будет эквивалент в swift этого кода Obj-C?

Я предполагаю что-то с CMutableVoidPointer

static void *CapturingStillImageContext = &CapturingStillImageContext;
3 4

3 ответа:

Вероятно, что-то вроде этого:

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

CMutableVoidPointer больше не доступен с бета-версии 3. Theres UnsafePointer и ConstUnsafePointer - Вы можете объявить это следующим образом:

let CapturingStillImageContext = UnsafePointer<()>()

Я использую эту технику, но было бы неплохо найти более элегантное решение:

var SelfReferencingKey = initialize_SelfReferencingKey()

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