gpt4 book ai didi

ios - 如何在 swift 3.0 中使用 UnSafeRawPointer

转载 作者:可可西里 更新时间:2023-11-01 00:57:56 25 4
gpt4 key购买 nike

我正在研究带位置的相机。
我正在做的是当单击捕获图像按钮时,我将所有位置信息收集在字典中并进一步将其设置在 CFDictionarySetValue 中。这是我面临的问题。
CFDictionarySetValue格式为dict, key, value如下:

CFDictionarySetValue((dictionary)CFMutableDictionary!, (key)UnsafeRawPointer!,(value) UnsafeRawPointer!)

和我的字典,键值如下:

字典:

let mutable : CFMutableDictionary = CFDictionaryCreateMutableCopy(nil, 0, metaDict)

键:

kCGImagePropertyGPSDictionary

值(value)

let gpsDict : NSDictionary = [kCGImagePropertyGPSLatitude: Int(fabs(loc.coordinate.latitude)), kCGImagePropertyGPSLatitudeRef : ((loc.coordinate.latitude >= 0) ? "N" : "S"), kCGImagePropertyGPSLongitude : Int(fabs(loc.coordinate.longitude)),kCGImagePropertyGPSLongitudeRef : ((loc.coordinate.longitude >= 0) ? "E" : "W") , kCGImagePropertyGPSTimeStamp  : formatter.string(from: loc.timestamp), kCGImagePropertyGPSAltitude  : Int(fabs(loc.altitude))]

它看起来像CFDictionarySetValue(mutable, kCGImagePropertyGPSDictionary, gpsDictionary)

我在上面的行中收到错误消息:“无法将 NSDictionary 类型的值转换为 UnSafeRawPointer!对于 gpsDictionary”

尝试了一些方法还是没有成功。

最佳答案

您正在将 NSDictionary 作为参数传递给 CFDictionarySetValue(...),但预期类型是 UnSafeRawPointer 类型的指针.第二个参数 kCGImagePropertyGPSDictionary 也是如此。您传递的是 NSString 而不是指针。

要解决此问题,请为两个参数创建指针。一种可能的方法:

let pGPSDictionary = Unmanaged.passUnretained(kCGImagePropertyGPSDictionary).toOpaque()
let pGpsDict = Unmanaged.passUnretained(gpsDict).toOpaque()
CFDictionarySetValue(mutable, pGPSDictionary, pGpsDict)

有一个更好的语法来创建 UnSafeRawPointer,我现在不记得了。

关于ios - 如何在 swift 3.0 中使用 UnSafeRawPointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40972038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com