diff options
Diffstat (limited to 'corefoundation.go')
| -rw-r--r-- | corefoundation.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/corefoundation.go b/corefoundation.go index e571ecb..ebec7a4 100644 --- a/corefoundation.go +++ b/corefoundation.go @@ -148,6 +148,20 @@ func CFArrayToArray(cfArray C.CFArrayRef) (a []C.CFTypeRef) { return } +// StringsToCFArray converts strings to CFArrayRef +func StringsToCFArray(strs []string) C.CFArrayRef { + strRefs := []C.CFTypeRef{} + for _, s := range strs { + strRef, err := StringToCFString(s) + if err != nil { + return nil + } + defer Release(C.CFTypeRef(strRef)) + strRefs = append(strRefs, C.CFTypeRef(strRef)) + } + return ArrayToCFArray(strRefs) +} + // Convertable knows how to convert an instance to a CFTypeRef. type Convertable interface { Convert() (C.CFTypeRef, error) |
