2

私はいくつかのクラスを持っています.1つはユーザーで、もう1つはTestObjectです。User をクエリすると (試行錯誤で _User としてクエリする必要があることがわかりました)、正しいレコード数が得られますが、TestObject をクエリすると 0 になります。これは一部のクラスで発生しますが、すべてではありません。何故ですか?

PFQuery *query = [PFQuery queryWithClassName:@"_User"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
             if (error) {
                 NSLog(@"Error: %@ %@", error, [error userInfo]);
             } else {
                 NSLog(@"Successfully retrieved %d scores.",objects.count);
             }
}];

これは以下を返します:

2012-10-19 13:55:03.239 TableViewParseDotCom[5497:10103] 24 のスコアを正常に取得しました。

しかし、行を変更すると、次のようになります。

PFQuery *query = [PFQuery queryWithClassName:@"TestObject"];

カウントは 0 ですが、45 個のレコードがあることはわかっています。なんで?

4

3 に答える 3

1

クエリを実行しているオブジェクトの ACL を確認するだけでなく、Parse ダッシュボードの [設定] も確認する必要があります。ユーザーにログインを強制したくない場合は、「匿名ユーザーを許可する」がオンに設定されていることを確認してください。

また、TestObject オブジェクトのデータ ブラウザーで、[詳細] ボタンをクリックし、ドロップダウンから [権限] を選択します。「Find」と「Get」の設定が正しいことを確認します。デバッグを支援するために、開始するロール/ユーザーなしで public に設定します。これにより、TestObject オブジェクトをクエリできるようになります。

于 2012-10-27T03:35:30.243 に答える
1

これの最も一般的な理由は、アクセス権のないオブジェクトを照会したことです。これらのオブジェクトに ACL がある場合は、同じユーザーとしてログインしていることを再確認してください。

于 2012-10-20T23:54:52.833 に答える
0

読み取り権限を設定することを忘れないでください。これらは、以下のようにプログラムで設定できます。

PFACL * defaultACL = [PFACL ACL];
[defaultACL setPublicReadAccess:YES];
[PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES];

1 つは自分のユーザーに対して、もう 1 つは別のクラス (imageClass) に対して 2 つのクエリを実行したところ、どちらも正常に返されました。

ユーザー クエリ:

// Remember for users we can run a user query instead of needing to specify the class
PFQuery * userQuery = [PFUser query];
[userQuery whereKey:@"username" equalTo:currentUser.username];

[userQuery findObjectsInBackgroundWithBlock:^(NSArray * objects, NSError *error) {

}];

その他のクラス クエリ:

PFQuery * imageQuery = [PFQuery queryWithClassName:@"bImageClass"];

[imageQuery findObjectsInBackgroundWithBlock:^(NSArray * objects, NSError *error) {

}];

これは、Parse での私のクラスの写真です。

解析メニュー

したがって、クエリに使用しているコードが正常に見えるため、パブリック アクセスが正しく設定されていることを確認します (私のプロジェクトでは、これはクエリが実行される直前に設定されます)。

于 2015-07-29T09:39:29.650 に答える