我只是将我的 iOS 应用程序的代码更新为 Swift 3,这行代码让我很困惑:
let dataProvider:CGDataProvider? = CGDataProviderCreateWithData(nil, maskImagePixelData!, maskImagePixelData!.count, nil)
Run Code Online (Sandbox Code Playgroud)
这在我使用的先前版本的 Swift 中有效,现在它抛出此错误:
Nil 与预期的参数类型 'CGDataProviderReleaseDataCallback' 不兼容(又名 '@convention(c) (Optional<UnsafeMutableRawPointer>, UnsafeRawPointer, Int) -> {}')
我找不到CGDataProviderCreateWithData(!)的文档,但签名也让我感到困惑:
CG_EXTERN CGDataProviderRef __nullable CGDataProviderCreateWithData(
void * __nullable info, const void * cg_nullable data, size_t size,
CGDataProviderReleaseDataCallback cg_nullable releaseData)
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的替代品,nil或者我是否需要进入某种UnsafeMutableRawPointer?
知道了:
let releaseMaskImagePixelData: CGDataProviderReleaseDataCallback = { (info: UnsafeMutableRawPointer?, data: UnsafeRawPointer, size: Int) -> () in
// https://developer.apple.com/reference/coregraphics/cgdataproviderreleasedatacallback
// N.B. 'CGDataProviderRelease' is unavailable: Core Foundation objects are automatically memory managed
return
}
var dataProvider:CGDataProvider? = CGDataProvider(dataInfo: nil, data: maskImagePixelData!, size: maskImagePixelData!.count, releaseData: releaseMaskImagePixelData)
Run Code Online (Sandbox Code Playgroud)
并CGDataProvider.init替换CGDataProviderCreateWithData文档是here
| 归档时间: |
|
| 查看次数: |
2445 次 |
| 最近记录: |