バックグラウンド リージョン モニタリングを使用して、ユーザーがベンダーの周囲に入ったときにアラートを送信する iOS アプリがあります。ベンダーがいるアプリのバックエンドは、プラットフォーム解析で実行されています。アプリがバックグラウンドに入ると、ユーザーの近くのベンダーのクエリを作成し、20 の地域しか監視できないため、クエリを 20 に制限し、それらの地域ごとに監視を開始します。さらに、各 CLRegion を作成するときに、関連する PFObject の ID と同じ識別子をそれぞれに割り当てます。そうすれば、ユーザーが地域に入ると、その識別子を使用して解析データベースにクエリを実行し、通知に関連する情報を取得できます。
問題は次のとおりです。いくつかの地域を入力すると、通知の解析から関連する地域情報を取得するときにクエリが null を返します。他の地域では、問題なく動作します。そのため、デバッグするために、作成時に各領域の識別子をログに記録し、didEnterRegion デリゲート メソッドが呼び出されたときに、入力された領域の識別子にログを記録しました。私のプログラムは parse objectId と等しい識別子を持つ領域を正しく作成しましたが、一部のベンダーでは機能しないことに気付きました。領域識別子をログに記録すると、割り当てたものとはまったく異なり、その理由が説明されています。クエリはヌルです。
署名していない値に識別子が変更されるのはなぜですか? このバグは本当に私を夢中にさせています。私は本当にいくつかの助けを使うことができました。私は高校 1 年生なので、経験豊富なプログラマーからアドバイスを得ることができます。