دائرة الرقابة الداخلية-تحليل-بفكيري لا يعمل
-
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
للسماح للاستعلام لإكمال في الخلفية.في كتلة الإكمال ، يمكنك تحديث واجهة المستخدم الخاصة بك.
أيضا ، من وجهة نظر التصميم الخاص بك toUser
يجب أن يكون عمود نوع مرجع ، وليس نوع سلسلة.يمكنك بعد ذلك استخدام
[query whereKey:@"toUser" equalTo:[PFUser currentUser]];
لا تنتمي إلى StackOverflow