問題タブ [pfobject]
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.
parse-platform - Parse PFObject の ReactiveCocoa RACObserve が時々しか機能しない
Foo
多くの画面で呼び出されるメインアプリターゲットがあります。これは Parse の iOS SDK を利用しているため、 のサブクラスであるモデル オブジェクトがありPFObject
ます。
私は画面を分離して開発するのが好きなので、実際のモデルとは分離して画面を実行する別の「テスト アプリ」ターゲットを用意しています。
サブクラスの変更のBar
KVO 観測 ( ) に大きく依存する、という名前の画面があります。たとえば、モデルの文字列プロパティを観察して、テキストの図式ビューを生成したいと考えています。RACObserve
PFObject
これがテストアプリで機能することを示しました。 Bar
ソースは、テストアプリに含まれているのと同じ方法でBar
多かれ少なかれ直接含まれFoo
ているため、テストアプリで見られる動作も存在することを期待していますメインアプリケーション自体で。
ただし、RACObserve
テストアプリでは機能する (サブスクライバーに「次の」メッセージが送信される) だけで、メインアプリでは機能しない (サブスクライバーに「次の」メッセージが送信されない) ことがわかりました。
RACObserve
あるコンテキストでは機能し、別のコンテキストでは機能しないように見える方法がわかりません。ヘルプ!ReactiveCocoa 2.3.1 を使用。
ios - 削除後にParseでオブジェクトを再作成する正しい方法は何ですか?
サーバー側にParseを使用しています。そして、Parse の Contacts オブジェクトのリストを含むテーブル ビューがあります。ユーザーがオブジェクトをタップすると解析のために保存され、再度タップすると解析から削除されます。
保存するには、次の方法を使用します。
削除するには、これを使用します:
objectId を nil に設定したのは、テーブル ビューでこのプロパティを使用して、オブジェクトが既に解析されているかどうかを確認するためです。
問題は、ユーザーが保存、削除、保存などの手順を実行した場合です。
- 保存: オブジェクトは、すべてのデータを使用して解析時に作成されます。
- 削除: オブジェクトは解析から削除されます。
- 保存: オブジェクトは解析時に作成されますが、データはありません (objectId のみ)。
これは通常の手順ですか?電話では、削除メソッドの後でも、オブジェクトには常にすべてのデータがあります。したがって、すべてのデータを含むオブジェクトに対して save メソッドを実行すると、同じオブジェクトが過去に削除されたとしても、解析に保存されると思います。
以下は、1 つの空のオブジェクトと、すべてのデータとともに正しく保存されたオブジェクトの図です。
これについてあなたの経験は何ですか?この問題の解決を楽しみ、wold をより良い場所にする手助けをしてください :)
ios - 解析オブジェクトを NsuserDefault に直接保存するにはどうすればよいですか?
このオブジェクトを NSUserDefaults に保存するにはどうすればよいですか?
swift - swiftを使用してParseに辞書を保存するにはどうすればよいですか?
私は Swift を初めて使用し、Obj C をまったく知らないため、多くのリソースを理解するのが困難です。基本的に、クエリから PFUsers を辞書に入力し、PFUser["friends"] をこの辞書に設定しようとしています。簡単に言えば、PFUser クラスにフレンド リストが必要です。ここで、各フレンドは PFUser と文字列です。ありがとう!
明確にするために、このコードはコンパイルされますが、追加すると
アプリがクラッシュします。
ios - PFObject のコピーの作成
私は、ユーザーが a をダウンロードしPFObject
てローカルで変更できるようにし、変更をキャンセルするか、[完了] を押すと、編集インターフェイスを閉じますが、変更を Parse にまだアップロードしない状況にあります。すべての変更を一度にデータベースに書き込むには、前の画面で [保存] をクリックする必要があります。
問題は、PFObject
が変更されると、データベースから再取得しない限り、以前の状態に戻すことができないことです。しかし、以前の状態がまだ Parse にアップロードされていない可能性があるため、Cancel を押すたびにデータベースからデータを再取得できるとは限りません (これは、ローカルにのみ保存されている変更を破棄するのを待たせる悪い UX です)。
たとえば、ユーザーが をタップして編集しPFObject
、変更を加えて [完了] をクリックし、もう一度タップしてオブジェクトをさらに編集し、[キャンセル] をクリックしたとします。この場合、オブジェクトを以前の状態に戻す必要がありますが、その状態はまだ Parse にアップロードされていません。したがって、データベースからデータを再フェッチして変更を元に戻すことはできません。そうしないと、最初に行った変更が上書きされます。
この問題を解決するには、単純に を取得してPFObject
そのコピーを保存します。私はそれを一時的なオブジェクトと呼んでいます。実際のオブジェクトを格納する別のプロパティがあります。ユーザーは一時的なオブジェクトを変更し、[キャンセル] を押したときに単純に に設定しnil
、代わりに [完了] を押した場合は、実際のオブジェクトを一時的なオブジェクトに等しく設定し、最後に [保存] をクリックすると、実際のオブジェクトをに保存します。データベース。そうすれば、ユーザーが変更をコミットするまで、実際のオブジェクトに変更が加えられないことを確認できます。問題は、プロトコルPFObject
を採用していないNSCopying
(理由がわからない) ため、のコピーを作成できないことPFObject
です。それに加えた変更は、実際のオブジェクトに影響します。
データがコミットされ、後で保存されるタイミングを制御できるアプリの設計を変更せずに、これを解決するにはどうすればよいでしょうか? を拡張PFObject
して採用する方法はありNSCopying
ますか?以前に行われたことがありますか?
オブジェクトの属性をディクショナリに保存することを検討し、代わりにユーザーがそれを編集できるようにし、コミット時にそれらの属性のそれぞれをPFObject
. このソリューションの問題は、複雑な構造で発生します。このアプリでは、ユーザーが複数の を含む複数PFObject
の配列を変更できるようにします。単一の単純なPFObject
.