我正在使用 NSSavePanel 让用户选择要保存到我的应用程序中的图像。一切正常,直到我启用应用程序沙盒和权利。选择已经存在的文件时会出现问题。我的代码是这样的:
// 创建一个指向我们的文件目标的 URL 和一个 CGImageDestination 来保存。CGImageDestinationRef imageDestination = CGImageDestinationCreateWithURL((CFURLRef)[savePanel URL], (CFStringRef)newUTType, 1, NULL); CGImageDestinationAddImage(imageDestination, cgimage, (CFDictionaryRef)metaData); const bool 结果 = CGImageDestinationFinalize(imageDestination);
它在选择新文件来保存图像时起作用,但是当我选择现有文件时,它会在现有文件之外创建奇怪的命名文件,并且无法覆盖目标 url 的内容。更糟糕的是,我没有得到任何错误回报,也无法检测到故障。这是 CoreGraphics 或我的代码中的错误吗?这个问题有什么解决方法吗?