これは でタグ付けされてiOSいますが、他の Parse SDK にも役立つと確信しています。ご存じかもしれませんが、Parse はネイティブPFObjectサブクラスを作成する機能をiOSSDK に追加しました。これは、いくつかの理由から素晴らしい追加です。まず、オブジェクト属性の動的プロパティを作成することで、コンパイラがコードをチェックできるようにします。
myObject[@"myAttribute"]に変換されますmyObject.myAttribute
2 番目に、この質問にとってより重要なことは、カスタム サブクラスに機能を追加できることです。たとえば、Alarmオブジェクトを Parse クラウドに保存するアラーム アプリを作成したとします。+ (instancetype)objectカスタム サブクラスでは、 、- (void)saveEventually、および- (void)deleteEventuallyメソッドをオーバーライドして、作成、変更、または削除時にオブジェクト自体をalarmスケジュール/更新/削除できるようにします。UILocalNotification
ここで問題が複雑になり、私の実際の質問が出てきます。ユーザーが 1 つのデバイスでアラームを作成し (クラウドにアップロード)、別のデバイスに自動的に同期するとします。PFQuery2 番目のデバイスは、バックグラウンドで's'を使用してコンテンツを更新し、各オブジェクトを- (BFTask *)findObjectsInBackground呼び出し- (BFTask *)fetchIfNecessaryInBackgroundて、その実体がすべてデバイス上にあることを確認します。PFObject私の質問は、Parse クラウド データベースからサブクラスが見つかった/フェッチされたときに、どのメソッドが呼び出されるかということです。さらに言えば、ローカル データストアから初期化されたオブジェクトについてはどうでしょうか。
前述したように、さまざまなメソッドのオーバーライドは、デバイス上で作成および管理されるオブジェクトに対しては完全に機能しますが、ローカルまたはリモートのデータストアからメモリに到着したばかりの新しいオブジェクト内からカスタム コードを実行する方法については困惑しています。これを処理する方法についての考えや提案は大歓迎です。Parse のドキュメントはそのようなケースをカバーしていないため、ベスト プラクティスでさえないかもしれませんが、そうすべきだと私には思えます。とにかく、あなたの時間とあなたの洞察に感謝します。