iOS - 구문 분석 - 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];
}
}
그러나 성능상의 이유로 이와 같이 find 객체를 동기적으로 호출하는 것은 좋지 않습니다.당신은 사용해야합니다 - (void)findObjectsInBackgroundWithBlock:(PFArrayResultBlock)block
쿼리가 백그라운드에서 완료되도록 허용합니다.완료 블록에서 UI를 새로 고칠 수 있습니다.
또한 디자인적인 측면에서도 toUser
문자열 유형이 아닌 참조 유형 열이어야 합니다.그런 다음 사용할 수 있습니다
[query whereKey:@"toUser" equalTo:[PFUser currentUser]];
제휴하지 않습니다 StackOverflow