iOS-Parse-PFQuery不工作
我正在创建一个自定义类iOS-Parse-PFQuery不工作,ios,parse-platform,key-value,pfquery,Ios,Parse Platform,Key Value,Pfquery,我正在创建一个自定义类ChatRequest,但当我尝试查询它时,它不会返回任何自定义键 这是我的密码: - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; PFQuery *query = [PFQuery queryWithClassName:@"ChatRequest"]; [query setValue:[PFUser currentUser].username forKey
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];
}
}
-(void)视图显示:(BOOL)动画
{
[超级视图显示:动画];
PFQuery*query=[PFQuery queryWithClassName:@“ChatRequest”];
[查询设置值:[PFUser currentUser]。用户名forKey:@“toUser”];
NSArray*objects=[query findObjects];
对于(整数i=0;i
有人能帮忙吗?我检查了我的类是否正确,键是否在那里,但它仍然无法工作。您不能使用
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];
}
}
当我尝试访问username属性时,它仍然不起作用:
object[@“sendingUser”]。username
如果sendingUser
是一个引用类型列,那么您需要添加[query includeKey:@“sendingUser”]
以让解析API检索引用的对象,因为在类型的对象上找不到属性“username”(id)
您需要强制转换对象-PFUser*sender=(PFUser*)对象[@“sendingUser”];NSString*senderName=sender.username
[query whereKey:@"toUser" equalTo:[PFUser currentUser]];