我确信这很简单,但我找不到它。
我正在尝试使用CGImageDestinationRef
函数创建一个CGImageDestinationCreateWithData
,但它返回给我一个零。
功能文档:
这个功能很简单,但我似乎无法让它给我一个对象。我在ARC课程中,因此函数周围有一个桥接包装器。
我的代码段:
NSMutableData *data = [[NSMutableData alloc] init];
CGImageDestinationRef imageDestination = nil;
imageDestination = (__bridge CGImageDestinationRef) CFBridgingRelease(CGImageDestinationCreateWithData ((__bridge CFMutableDataRef)data, (__bridge CFStringRef)type, 1, NULL));
if (!imageDestination)
NSLog(@"This is always called. :-(");
如果有人发现我做了些蠢事,我会非常感激!
答案 0 :(得分:3)
我已经解决了这个问题并在这里发布了答案,因为它可能在将来帮助其他人。
我的类型设置为@“image / jpg”,这似乎不起作用(文档建议它应该)。
当我将类型更改为@“public.jpeg”时,该函数开始按预期工作。
在下面的评论中使用Jim的提示,这就是我最终要从URL中找到正确的UTI类型:
NSString *uti = CFBridgingRelease(UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, (__bridge CFStringRef)[NSString stringWithFormat:@"image/%@", url.pathExtension], kUTTypeImage));