struct
Unmanaged
A type for propagating an unmanaged object reference.
Instance Methods
Performs an unbalanced autorelease of the object.
Declaration
public
func
autorelease
() -
>
Unmanaged
<
Instance
>
Performs an unbalanced release of the object.
Declaration
public
func
release
()
Performs an unbalanced retain of the object.
Declaration
public
func
retain
() -
>
Unmanaged
<
Instance
>
Gets the value of this unmanaged reference as a managed reference and consumes 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
public
func
takeRetainedValue
() -
>
Instance
Gets 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
public
func
takeUnretainedValue
() -
>
Instance
Unsafely converts an unmanaged class reference to a pointer.
This operation does not change reference counts.
let
str0
=
"boxcar"
as
CFString
let
bits
=
Unmanaged
.
passUnretained
(
str0
)
let
ptr
=
bits
.
toOpaque
()
Declaration
public
func
toOpaque
() -
>
UnsafeMutableRawPointer
Type Methods
Unsafely turns an opaque C pointer into an unmanaged class reference.
This operation does not change reference counts.
let
str
:
CFString
=
Unmanaged
.
fromOpaque
(
ptr
).
takeUnretainedValue
()
- Parameter value: An opaque C pointer.
Declaration
public
static
func
fromOpaque
(
_
value
:
UnsafeRawPointer
) -
>
Unmanaged
<
Instance
>
Creates an unmanaged reference with an unbalanced retain.
The instance passed as value
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.
- Parameter value: A class instance.
Declaration
public
static
func
passRetained
(
_
value
:
Instance
) -
>
Unmanaged
<
Instance
>
Creates 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
))
- Parameter value: A class instance.
Declaration
public
static
func
passUnretained
(
_
value
:
Instance
) -
>
Unmanaged
<
Instance
>
When you use this type, you become partially responsible for keeping the object alive.