According to Apple Documentation:
When calling a function that takes a function pointer argument, you can pass a top-level Swift function, a closure literal, or nil.
I've tried this example from Apple Documentation: Apple Developer
func customCopyDescription(_ p: UnsafeRawPointer?) -> Unmanaged<CFString>? {
// return an Unmanaged<CFString>? value
}
var callbacks = CFArrayCallBacks(
version: 0,
retain: nil,
release: nil,
copyDescription: customCopyDescription,
equal: { (p1, p2) -> DarwinBoolean in
// return Bool value
}
)
but I got an error message in Xcode: (copyDescription: customCopyDescription error)
A C function pointer can only be formed from a reference to a 'func' or a literal closure
As mentioned at apple documentation , customCopyDescription can be passed as a top-level swift function, but it's seems like something is wrong in the documentation.
How to pass the customCopyDescription func to the CFArrayCallBacks as a swift function(not a closure literal)?