2012-09-22 10 views
7

アップデート: Appleのサイトにバグ12408800が追加されました。 OK - 私の携帯電話は、iOSの5.1とXcodeの4.5iOS:UIPasteboard setImage:iOS6またはXcode 4.5で失敗する

  • のiOS 6にアップグレードするまで


    ..私はUIPasteboardにいくつかのいずれかまたは複数のUIImageをコピーしています、そしてそれはgangbustersのような仕事をしています

  • のiOS 6.0とXcodeの4.4 - もOKaccording to this post
  • のiOS 6.0とXcodeの4.5 - FAIL

(また、それは価値がある何のために、TestFlight経由で配布するテスト - まだ失敗)

ここに私のコード(超基本的な、など)があります:

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

そして、ここでは、ときに私に何が起こるかでありますMMS/iMessageウィンドウに貼り付けてみてください(巨大なスクリーンショットには申し訳ありません。網膜ディスプレイは...):

screenshot_of_failure

..and iOS6シミュレータ内のメッセージのサンプルアプリケーションの障害の例(2つの疑問符を参照してください。):?

another screenshot!

私が言ったように、上記のコードは、年齢のために働いているので、これは新しいものだと確信しています。

どのような考えですか?リンク先のポストでは、Xcodeの古いバージョンを再コンパイルすることを提案していますが、他のiOS6ライブラリが動作を停止させる原因にはなりませんか?

+0

残念ながら、新しいiOS機能が必要です。そうでなければ、私のローテーションはiOS 6.で完全に骨が折れています。今のところ、アプリからコピー/ペーストを完全に削除しました。 oy vey。 – toblerpwn

答えて

13

これは私のiOS 6デバイスのXcode 4.5で動作します。

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

NICE。 1つのイメージをコピーするときに、5.1と6.0の両方で完全に動作します。 'UIPasteboard'の' setImages: 'のように、複数の画像をクリップボードにコピーする方法はありますか? – toblerpwn

+1

setImagesを使用する:まだ動作していないようです。 AppleがXcode 4.5で実際に何が間違っているかを把握するのを待たなければならないだろう。 – rob1302

+0

完全に動作します。私のアプリが何の理由もなくiOS6で動作していなかったことに気がついたときにすこし不安を直ちに解決しました!不思議なことに、この機能は変更されましたが、警告や何も取得していませんでした。 – Boeckm

1

私はAppleの開発者向け技術サポートにこの問題についてのメールを送信し、私はこの返事だ:

は、Appleの開発者向け技術サポートにお問い合わせいただきありがとうございます。 Googleのエンジニアがお客様のリクエストを確認し、これがバグレポートとして最適に処理されると判断しました。

Bug Reporterツールhttp://bugreport.apple.comを使用してこの問題に関する完全なバグレポートを送信してください。

これはバグです一つだけの画像の場合

+0

よろしくお願いします。 Appleのサイトにバグ12408800を追加しました。返事を返す。 – toblerpwn

+0

私はこの問題でApple Developer Technical Supportを開いていましたが、先日投稿した解決策を思いついて送信しました。彼らはすでに問題について知っており、バグレポートも作成しました。私が自分の質問に答えて以来、私はTech Support Incidentを取り戻すことができますか?) – rob1302

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に直接インデックスを避けます。

+1

+1は#importを追加するためのもので、他のものは無視されています。 –

+0

あなたはkUTTTypeJPEGの代わりに@ "public.jpeg"を使用することもできます。これにより、ライブラリ全体を1つの定数にリンクすることができなくなります。 iOS8の –

+0

Notesアプリケーションに貼り付けるのに問題がありましたが、上のコードがうまく機能しました。私が下で共有しているコードでは、メッセージアプリケーションに貼り付けることは機能していましたが、両方ともうまくいきます:UIPasteboard * pasteBoard = [UIPasteboard generalPasteboard]; \t if(image){ \t \t [pasteBoard setImage:image]; \t} – c0d3Junk13

関連する問題