問題タブ [restkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - primaryKeyAttribute が機能しない Restkit/Core Data
フレームワークのレストキット 0.9.3 をインストールして、ディスカッション ボードの例に従いました。まあ、すべてうまくいきましたが、Core Data を使用しようとすると、プライマリキー属性 (userID) を宣言した後でも、User NSManagedObject クラスが複製されます。たとえば、Web サーバーにログイン要求を送信すると、{"user":{"id":1, "username":"teste", ...}}
.. が返されますが、objectLoader:didLoadObjects を呼び出すたびに新しい行が作成されるようです。
ユーザー テーブル:
コード例:
~ AppDelegate.m didFinishLaunching
~ User.m loginWithDelegate
~ User.m didLoadObjects (RKObjectLoaderDelegate)
私は何を間違っていますか?
date - レストキットとISO日付
レストキットを使用してjsonapi/mongodbからiso日付を解析するのに問題があります。
返されるiso日付文字列は「2011-11-15T04:00:00Z」です。これはオブジェクトでnsdateに変換されず、nullとして表示されます。
APIでサーバー側の日付文字列をフォーマットできない場合の推奨される回避策は何ですか?
mapping - Rails3.1とRestKit0.9.3-参照のマッピング
次のシナリオがあります。RailsWebポータル(Rails 3.1)があり、RestKit 0.9.3(最新バージョン)を使用してiOSデバイスからポータルに接続しています。サーバーからのデータ構造をiOSデバイスのコアデータモデルにマッピングしたいと思います。モデルは次のように設計されています。
クラス
- ユーザー
- 役割
- 役職
- コメント
関係
- ユーザーには0または1つのロールがあります/ロールには複数のユーザーがいます
- ユーザーに複数の投稿があります/投稿に1人のユーザーがいます
- 投稿に複数のコメントがあります/コメントに1つの投稿があります
問題は、RestKitのリレーションのデフォルトのマッピングにより、巨大なメッセージと冗長な転送が発生することです。これは、ロールを送信/受信すると、すべてのユーザーも転送され、ユーザーを送信/受信すると、ロールがに追加されるためです。各ユーザー。ユーザー、投稿、コメントでも同じことが起こります。それはデータが多いだけであり、私が考える限り、最善の解決策は、参照されるIDを送信し、各タイプを転送することです。これは、iOSデバイスからサーバーにデータを送信するときにロールのIDをユーザーのフィールド「role_id」にマッピングすることで完全に機能します。これは、Railsがそれをどう処理するかを理解しているためです。したがって、リレーションはリレーションとしてではなく、IDフィールドとしてマッピングされます。しかし、サーバーからユーザーを受信すると、デバイスに存在しない場合、エラーが発生します。
そこで調査したところ、RestKitがロールの主キーのみを送信するように、リレーションをマッピングして主キーのマッピングを使用できることがわかりました。しかし今、Railsはそれをどうするかを理解していません。これは次のようになります。
{"id":1、 "uid": "my_user_name"、 "pwd": "my_password"、 "role":{"id":0}}
しかし、Railsはそのようなものを期待しています:
{"id":1、 "uid": "my_user_name"; "pwd": "my_password"、 "role_id":0}
それが私の現状であり、この誤解を解決する方法が本当にわかりません。
助けていただければ幸いです。
iphone - Restkit: サブフィールド「fields.attr」をフィールド「attr」に特定のマッピングを行います
こんにちは、私がやろうとしていることが可能かどうかを知るために、いくつかのアドバイスが必要です。
私はこのデータモデルを持っています:
そして、次のJsonフラッド(Djangoによって生成された)を受け取ります:
fields.photo_set を photo_set にマップしようとすると:
私は有名なものを手に入れます:
私の質問は、「私がやろうとしていることは可能ですか??」です。
ご協力ありがとうございました !
PS:これらは私のマッピングルールです:
objective-c - RestKit - オブジェクトマッピング! ここで何がうまくいかないのですか?
サーバーからの JSON 応答があります。RestKit ログから取得したデータは次のようになります。
データは 3 つのオブジェクトにマップされます。
Place、Placeinfo、LatestDBUpdate。
問題は:
上記の JSON 応答には、1 対多の関係で接続された 2 つの場所オブジェクトと 2 つのネストされた PlaceInfo オブジェクトがあります。
Timestamps キーワードに関連する LatestDBUpdate オブジェクトもあります。
Restkit は 3 つの Place オブジェクトをマップし、1 つがすべて NULL になります。他の 2 つの Place オブジェクトは正しくマッピングされており、関係も正しくなっています。もちろん、2 つの Place オブジェクトのみをマップする必要があります。
LatestDBUpdate マッピングもタイムスタンプを正しくマッピングします。
私は、JSON 応答のタイムスタンプ部分を削除すると、マッピングが正しく、2 つの場所のオブジェクトしかないと判断しました。
しかし、そこにタイムスタンプの部分が必要です! これを修正する方法がわかりません!どんなアイデアでも - 私はこれに何時間も費やしてきたので、本当にいくつかのインプットを使うことができました!
使用されるマッピング設定は次のとおりです。
objective-c - restkit を使用して非同期結果でブロックを使用できますか?
--UPDATE: AFNetworking を試してみることにしました。RestKit には非常に優れたオブジェクト マッピング機能がありますが、ネットワーク呼び出しの設計方法によって、いくつかのことが困難になりました。
RestKit を使用しているプロジェクトを整理する方法についてのアドバイスを期待しています。
リポジトリ クラスからいくつかの REST 呼び出しがあり、その結果がコントローラーに渡されます。たとえば、ブラウズ ビュー コントローラーから呼び出されるリポジトリ クラスに getProfile メソッドがあります。ビュー コントローラーは get profile 呼び出しのデリゲートとして設定され、リポジトリ クラスはレストキット呼び出しのデリゲートに設定されます。
問題は、ブラウズ コントローラーが複数のプロファイル取得要求を行う場合、すべてのレストキット呼び出しが同じデリゲート メソッド objectLoaderDidFinishLoading を共有するため、どの結果がどのデリゲート関数に送られるべきかを区別するのが難しいことです。次に、4 つの非同期 restkit 要求の結果と一致させる必要がある 4 つのデリゲートがあります。
適切なデリゲートを割り当てることができるように、ブロックを使用して関数を渡して実行することができる方法はありますか? 私が見たブロック サポートでは、レスト キットでリクエストが送信される前にブロックを使用できましたが、非同期の結果が返されたときにブロックを使用することに興味があります。
結果を調べるか、ユーザー データを設定し、どのデリゲートがどの非同期結果に対応するかを調べるという代替手段は、信頼性が低く、かさばるように見えます。
objective-c - RestKitの1つのObjectManagerからの複数のリソースのマッピング
セミRESTWebサービスのクライアントを作成しています(現時点では、GETリクエストのみをサポートしています)。
私の問題は次です。1つのベースURLと2つのタイプのリソースがあり、それぞれが異なるリソースパス上にあります。
この時点で、そのリソース構造を表す2つのクラスがあり、RKObjectMapping
各リソースタイプをマッピングするための2つのインスタンスがあり、それぞれが異なるマッピングを持つ2つのインスタンスがあります。アプリでは、の各インスタンスをRKObjectManager
呼び出すリソースをロードします。loadObjectsAtResourcePath:
RKObjectManager
RKObjectManager
1つのWebサービスのみを使用しているため、のインスタンスを1つだけ使用する必要があると感じているため、コードを改善する方法を誰かに提案してもらえますか。
たくさん検索して解決策が見つからなかったので、アドバイスをいただければ幸いです。
ios - RKRequest / RKRequestQueueのデータサイズを取得しますか?
私はRestKitを使用していますが、それは素晴らしいことです。1つのRKRequestQueueに集められたRKRequestがほとんどないので、ダウンロードの進行状況をユーザーに表示したいと思います。リクエストのデータサイズを取得または生成するための場所が見つかりません。
助けていただければ幸いです。
ありがとうシャニ
objective-c - RKJSONParserJSONKitが見つかりません
RestKitからJSON解析を使用しようとしていますが、次のコンパイル時エラーが発生します。
RestKitは問題なく動作します。これは、これまでに見た唯一のエラーです。これは私のインポートラインです:
編集:奇妙なことに、次のようなパーサーを作成しようとした場合にのみコンパイルに失敗します:
この行をコメントアウトするとコンパイルが可能になりますが、パーサーをインスタンス化する必要があります。
このエラーを修正するにはどうすればよいですか?ありがとうございました。
objective-c - iOS 用 RestKit で postObject を実行するときの応答を無視する
WCF Data Services への接続に RestKit を使用しています。
応答マッピングの問題により、RKObjectManager の postObject 関数を使用してエンティティを追加する際に問題が発生しています。
エンティティが追加されると、WCF Data Services は 201 ステータス コードと新しく追加されたエンティティを (応答として) 返します。
応答を無視して、返されたステータス コードだけを使用して、追加が成功したかどうかを確認することはできますか?
ポンヌ