I\'m using an Objective-C class in my Swift project via a bridging header. The method signature looks something like this:
- (CFArrayRef)someMethod:(someType
-
As explained in
Working with Core Foundation Types, there are two possible solutions when
you return a Core Foundation object from your own function that is imported in Swift:
Annotate the function with CF_RETURNS_RETAINED
or CF_RETURNS_NOT_RETAINED
.
In your case:
- (CFArrayRef)someMethod:(someType)someParameter CF_RETURNS_NOT_RETAINED;
Or convert the unmanaged object to a memory managed object with takeUnretainedValue()
or takeRetainedValue()
in Swift. In your case:
var cfArr = myInstance.someMethod(someValue).takeUnretainedValue()
- 热议问题