swift - 在 Swift 中,如何将 CFStringRef[] 和 CFTypeRef[] 转换为 CMutablePointer< COpaquePointer >?

标签 swift

在 Swift 中我如何转换 CFStringRef[]CFTypeRef[]CMutablePointer< COpaquePointer >

我想调用CFDictionaryCreate来自 swift 。我已经定义:

var keys: CFStringRef[] = [kCGImageSourceCreateThumbnailWithTransform, kCGImageSourceCreateThumbnailFromImageIfAbsent, kCGImageSourceThumbnailMaxPixelSize, kCGImageSourceCreateThumbnailFromImageAlways]

var values: CFTypeRef[] = [kCFBooleanTrue, kCFBooleanTrue, imageSize, kCFBooleanTrue]

CFDictionaryCreate(nil, keys, values, 4, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)

但不知道如何在上述调用中指定键和值。

最佳答案

我可以通过为您创建不安全的指针让编译器停止提示,但我对 CFDictionary 的其余用法超出了我的理解范围。

import ImageIO

let dictionayKeyCB = UnsafePointer<CFDictionaryKeyCallBacks>()
let valueKeyCB = UnsafePointer<CFDictionaryValueCallBacks>()

let keys: [CFStringRef] = [kCGImageSourceCreateThumbnailWithTransform, kCGImageSourceCreateThumbnailFromImageIfAbsent, kCGImageSourceThumbnailMaxPixelSize, kCGImageSourceCreateThumbnailFromImageAlways]
let keysPointer =  UnsafeMutablePointer<UnsafePointer<Void>>.alloc(1)
keysPointer.initialize(keys)

let values: [CFTypeRef] = [kCFBooleanTrue, kCFBooleanTrue, kCFBooleanTrue, kCFBooleanTrue]
let valuesPointer =  UnsafeMutablePointer<UnsafePointer<Void>>.alloc(1)
valuesPointer.initialize(values)

CFDictionaryCreate(kCFAllocatorDefault, keysPointer, valuesPointer, 4, dictionayKeyCB, valueKeyCB)

关于swift - 在 Swift 中,如何将 CFStringRef[] 和 CFTypeRef[] 转换为 CMutablePointer< COpaquePointer >?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24188101/

相关文章:

iOS : Determine code based on console log

swift - 在我的 swift 实现中逐个读取字符串 char 非常慢

ios - fatal error : Index out of range in swift while taking options from uipicker

android - iOS 快速握手问题上的 TLS 连接

ios - 快速禁用表格 View 单元格中的滑动操作

ios - UICollectionView 手势事件

Swift For 循环线程错误

swift - 如何使用 SCNAvoidOccluderConstraint(任意示例)

ios - bcsymbolmap 不是有效的标识符?

ios - 我的 firebase int 返回 nil