的iOS:UIPasteboard setImage:失败iOS6上和/或4.5的Xcode(iOS

2019-07-31 19:10发布

更新:新增错误12408800苹果公司的网站。


我复制某一个或多个的UIImage到UIPasteboard,并一直工作势如破竹..直到我的手机升级到iOS 6。

  • 的Xcode 4.5与iOS 5.1 - 确定
  • 的Xcode 4.4与iOS 6.0 - 也行 ( 根据这个帖子 )
  • 的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的窗口粘贴会发生什么(对不起,巨大的屏幕截图; Retina显示屏。):

..和上在iOS6的模拟器的消息示例应用程序的故障的一个例子(见两个问号..?):

就像我说的,上面的代码已经工作了年龄,所以我敢肯定,这是新的东西。

有什么想法吗? 在连接后,笔者建议重新编译一个老版本的Xcode - 但这样不是会使其他iOS6的库停止工作?

Answer 1:

这对我的作品上的Xcode 4.5我的iOS 6设备。

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];        
NSData *imgData = UIImagePNGRepresentation(@"image");
[pasteboard setData:imgData forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]];


Answer 2:

对于只有一个形象,你应该使用:

#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索引。



Answer 3:

我收到一封电子邮件有关此问题的苹果开发者技术支持,我得到这个答复:

感谢您联系苹果开发技术支持。 我们的工程师已经审核了您的请求,并已经确定,这将作为一个bug报告最好的处理。

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

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



文章来源: iOS: UIPasteboard setImage: fails on iOS6 and/or Xcode 4.5