1

JSONのみを入力として受け入れるRESTWebサービスにUIImageオブジェクトを送信するのに問題があります。オブジェクトマッピングをすべて設定しましたが、UIImageに到達するまでJSONを正常に生成するように機能します。

画像の読み込みについては、 https ://github.com/RestKit/RestKit/wiki/Attach-a-File-to-an-RKObjectLoaderでこのページを読みまし たが、これにより、コンテンツタイプが常にapplication/jsonからapplicationに変更されます。 / xxx-form-url-encoded(またはそれが何であれ)。

では、RKParamsを使用せずにこれを達成するための最良の方法は何ですか?

ここで別のリンクを見つけました:https ://groups.google.com/forum/#!msg / restkit / QcTPucXXn4o / 41IcKDCeoGAJは、 RKObjectMappableプロトコルから propertiesForSerializationを使用できるRestKitの以前のバージョンについて説明しましたが、そのプロトコルとメソッドは0.10.0でより長く利用できるようです。

新しいバージョンには、UIImageのコンテンツをbase64でエンコードされたデータ(したがってJSONセーフ)に置き換えてからシリアル化する方法はありますか?

または他の解決策はありますか?助けていただければ幸いです。ありがとう

4

3 に答える 3

2

これは、RestKitで「imageData」プロパティに保存し、base64で画像をエンコードすることで実行しました。

ただし、これはCoreDataには適していません。代わりに、サーバー(base64でエンコード)から画像を取得するときに、画像をディスクに保存し、代わりにパスをCoreDataに保存するように記述しました。次に、画像をサーバーにプッシュすると、ディスク上でファイルが検出され、base64にエンコードされて、JSONに含まれます。

これは完璧な方法ではありませんが、画像を頻繁にやり取りしない場合は、かなりうまく機能します。

于 2012-04-27T22:43:37.620 に答える
1

RKParamsを使用して、serializationMIMETypeを変更してみましたか?

    RKObjectManager* objectManager = [RKObjectManager objectManagerWithBaseURL:baseURL];;
    objectManager.serializationMIMEType = RKMIMETypeJSON;
于 2012-04-27T10:15:10.573 に答える
1

さて、私はそれを行うための1つの方法を考え出しました。

最終的に、UIImageごとに追加のNSStringプロパティを作成しました。これは、実際のUIImageの代わりにマップに使用するものです。次に、postObjectの前に、各画像のbase64コードを生成し、それに応じてNSStringプロパティにデータを入力します。

最善の方法ではありませんが、他の人が何を思いつくかを知りたいと思っています。

于 2012-04-27T14:41:47.327 に答える