iOS - Parse - PFQueryが働いていません
-
02-01-2020 - |
質問
カスタムクラスChatRequest
を作成していますが、照会しようとすると、カスタムキーを返しません。
これは私のコードです:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
PFQuery *query = [PFQuery queryWithClassName:@"ChatRequest"];
[query setValue:[PFUser currentUser].username forKey:@"toUser"];
NSArray *objects = [query findObjects];
for (NSUInteger i = 0; i < objects.count; i++) {
PFObject *object = [objects objectAtIndex:i];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Chat Request!" message:object.sendingUser + @"wants to chat with you!" delegate:self cancelButtonTitle:@"Decline" otherButtonTitles:@"Accept", nil];
[alertView show];
}
}
.
誰もが助けになることができますか?私は私のクラスが正しかったことをチェックし、鍵はそこにいましたが、それでもうまくいきません。
解決
setValue
を使用して、クエリに制約を追加しません。whereKey:equalTo:
を使用するため、コードは次のようになります。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
PFQuery *query = [PFQuery queryWithClassName:@"ChatRequest"];
[query whereKey:@"toUser" equalTo:[PFUser currentUser].username ];
NSArray *objects = [query findObjects];
for (NSUInteger i = 0; i < objects.count; i++) {
PFObject *object = [objects objectAtIndex:i];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Chat Request!" message:object.sendingUser + @"wants to chat with you!" delegate:self cancelButtonTitle:@"Decline" otherButtonTitles:@"Accept", nil];
[alertView show];
}
}
.
しかし、パフォーマンス上の理由から、このように同期的に検索オブジェクトを呼び出すことは悪い考えです。- (void)findObjectsInBackgroundWithBlock:(PFArrayResultBlock)block
を使用して、クエリをバックグラウンドで完了させる必要があります。完了ブロックでは、UIを更新できます。
また、toUser
は、文字列型ではなく参照型列である必要があります。
[query whereKey:@"toUser" equalTo:[PFUser currentUser]];
. 所属していません StackOverflow