7

更新: Apple のサイトにバグ 12408800 を追加しました。


1つまたは複数のUIImageをUIPasteboardにコピーしていますが、携帯電話がiOS 6にアップグレードされるまで、ギャングバスターのように機能しています。

  • Xcode 4.5 と iOS 5.1 - OK
  • iOS 6.0 を搭載した Xcode 4.4 -また、OK (この投稿によると)
  • 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 ディスプレイ..):

screenshot_of_failure

..そして、iOS6 シミュレーターの Messages サンプル アプリでの失敗の例 (2 つの疑問符を参照してください..?):

別のスクリーンショット!

私が言ったように、上記のコードは何年もの間機能しているので、これは何か新しいものだと確信しています.

何かご意見は?リンクされた投稿で、著者は古いバージョンの 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

画像が1つだけの場合は、次を使用する必要があります。

#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 に答える