我有以下代码来查找自定义类中的对象。由于某种原因,它找到了两个相同的对象(self.addedArray2 的计数是 2,但在在线解析数据表上,只有一个)。你明白为什么它会两次找到同一个对象吗?
self.array2 = [[NSMutableArray alloc] init];
self.addedArray2 = [[NSMutableArray alloc] init];
PFQuery *query = [PFQuery queryWithClassName:@"Friends"];
[query whereKey:@"user" containsString:[[PFUser currentUser] objectForKey:@"username"]];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
for (Friends *currentFriend in objects) {
self.relation = currentFriend.friendsRelation;
self.addedRelation = currentFriend.addedRelation;
self.query = [_relation query];
[[_relation query] findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
[self.array2 addObjectsFromArray:objects];
[[_addedRelation query] findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
[self.addedArray2 addObjectsFromArray:objects];
[self.segmentControl setTitle:[NSString stringWithFormat:@"Friends (%lu)", (unsigned long)[self.array2 count]] forSegmentAtIndex:0];
[self.segmentControl setTitle:[NSString stringWithFormat:@"Added Me (%lu)", (unsigned long)[self.addedArray2 count]] forSegmentAtIndex:1];
NSLog(@"Number 1: %@", [self.addedArray2 objectAtIndex:0]);
NSLog(@"Number 2: %@", [self.addedArray2 objectAtIndex:1]);
}];
}];
}
}];
它正在记录“Number 1”,然后是“Number 1”,然后是“Number 2”。看起来该代码正在运行两次并再次添加。我该如何解决?对于所有这些嵌套,我真的不知道我能做什么。
最佳答案
对于 Friends 类的关键“用户”,如果它包含用户的用户名,请尝试替换:
[query whereKey:@"user" containsString:[[PFUser currentUser] objectForKey:@"username"]];
有了这个,如果有任何改变请告诉我:
[query whereKey:@"user" equalTo:[[PFUser currentUser] objectForKey:@"username"]];
但是,如果它是指向用户对象的指针,那么您将希望您的查询类似于以下内容:
[query whereKey:@"user" equalTo:[User currentUser]];
如果我的任何一个假设是错误的,请告诉我,因为我不知道您的类的结构,但我会尝试找出答案。
关于ios - 解析查询在只有一个对象时发现两个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227253/