struct Unmanaged<Instance : AnyObject>
Import | import Swift |
---|
Static Methods
Unsafely turn an opaque C pointer into an unmanaged class reference.
This operation does not change reference counts.
let str: CFString = Unmanaged.fromOpaque(ptr).takeUnretainedValue()
Declaration
static func fromOpaque(value: COpaquePointer) -> Unmanaged<Instance>
Create an unmanaged reference with an unbalanced retain. The object will leak if nothing eventually balances the retain.
This is useful when passing an object to an API which Swift does not know the ownership rules for, but you know that the API expects you to pass the object at +1.
Declaration
static func passRetained(value: Instance) -> Unmanaged<Instance>
Create an unmanaged reference without performing an unbalanced retain.
This is useful when passing a reference to an API which Swift does not know the ownership rules for, but you know that the API expects you to pass the object at +0.
CFArraySetValueAtIndex(.passUnretained(array), i,
.passUnretained(object))
Declaration
static func passUnretained(value: Instance) -> Unmanaged<Instance>
Instance Methods
Perform an unbalanced autorelease of the object.
Deprecated: it will be removed in Swift 3.
Declaration
func autorelease() -> Unmanaged<Instance>
Perform an unbalanced retain of the object.
Deprecated: it will be removed in Swift 3.
Declaration
func retain() -> Unmanaged<Instance>
Get the value of this unmanaged reference as a managed reference and consume an unbalanced retain of it.
This is useful when a function returns an unmanaged reference and you know that you're responsible for releasing the result.
Declaration
func takeRetainedValue() -> Instance
Get the value of this unmanaged reference as a managed reference without consuming an unbalanced retain of it.
This is useful when a function returns an unmanaged reference and you know that you're not responsible for releasing the result.
Declaration
func takeUnretainedValue() -> Instance
Unsafely turn an unmanaged class reference into an opaque C pointer.
This operation does not change reference counts.
let str: CFString = Unmanaged.fromOpaque(ptr).takeUnretainedValue()
Declaration
func toOpaque() -> COpaquePointer
A type for propagating an unmanaged object reference.
When you use this type, you become partially responsible for keeping the object alive.