7

更新:在 Apple 网站上添加了错误 12408800。


我正在将一些或多个 UIImage 复制到 UIPasteboard,并且它一直在工作,直到我的手机升级到 iOS 6。

  • Xcode 4.5 与 iOS 5.1 -好的
  • 带有 iOS 6.0 的 Xcode 4.4 -也可以根据这篇文章
  • Xcode 4.5 与 iOS 6.0 -失败

(也测试了通过 TestFlight 分发,因为它的价值 - 仍然失败)

这是我的代码(超级基本等):

// add image to clipboard
UIImage *image = [[UIImage imageNamed:@"testimage"];
[[UIPasteboard generalPasteboard] setPersistent:YES];
[[UIPasteboard generalPasteboard] setImage:image];

这是当我尝试粘贴到 MMS/iMessage 窗口时发生的情况(抱歉,屏幕截图太大;视网膜显示..):

screenshot_of_failure

..以及 iOS6 模拟器中 Messages 示例应用程序失败的示例(请参阅两个问号..?):

另一个截图!

就像我说的,上面的代码已经工作了很长时间,所以我确信这是新的东西。

有什么想法吗?在链接的帖子中,作者建议在旧版本的 Xcode 上重新编译——但这不会导致其他 iOS6 库停止工作吗?

4

3 回答 3

13

这适用于我的 iOS 6 设备的 Xcode 4.5。

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];        
NSData *imgData = UIImagePNGRepresentation(@"image");
[pasteboard setData:imgData forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]];
于 2012-09-27T03:23:45.523 回答
7

仅对于一张图像,您应该使用:

#import <MobileCoreServices/UTCoreTypes.h>

对于 JPEG:

NSData *jpegData = UIImageJPEGRepresentation(image, 1.0);
[[UIPasteboard generalPasteboard] setData:jpegData forPasteboardType:(id)kUTTypeJPEG];

或对于 PNG:

NSData *pngData = UIImagePNGRepresentation(image);
[[UIPasteboard generalPasteboard] setData:pngData forPasteboardType:(id)kUTTypePNG];

并避免直接在 UIPasteboardTypeListImage 中建立索引。

于 2012-11-26T22:44:04.813 回答
1

我向 Apple Developer Technical Support 发送了一封关于此问题的电子邮件,并收到了以下回复:

感谢您联系 Apple 开发者技术支持。我们的工程师已经审查了您的请求,并确定最好将其作为错误报告处理。

请使用http://bugreport.apple.com上的 Bug Reporter 工具提交有关此问题的完整错误报告。

所以这肯定是一个错误......

于 2012-10-01T21:47:12.117 回答