我使用解析作为后端创建应用,我有三个Classes
(User
,Student
,School
)。我目前在User类和Student Class之间有一个指针,所以如果我输入一个新学生,我可以创建一个与User的关系。
我的问题是我正在尝试为学校班级做同样的事情,这个班级是一个预先填充的班级,当我创建一个新学生时,我需要通过school_id引用该班级,该班级在学生班级中指针。
我班上的图片
因此,从图像中可以看出,用户类中的object_id是student类中的parent_id。现在我需要将School类中的object_id或school_id作为Student Class中的school_id。
预期结果:
用户" jamiemw" - >学生" johnnie Williams" - >学校"南风"
以下是我用
尝试的内容PFObject *kid = [PFObject objectWithClassName:@"Kids"];
kid[@"child_name"] = @"Johnnie Williams";
kid[@"age"] = @"14";
kid[@"date_of_birth"] = @"02/27/2001";
[kid setObject:[PFUser currentUser] forKey:@"parent_id"];
//this is what does not work.
[kid setValue:[PFQuery queryWithClassName:@"Schools"] forKey:@"student_id"];
[kid save];
PFQuery *query = [PFQuery queryWithClassName:@"Kids"];
[query whereKey:@"parent_id" equalTo:[PFUser currentUser]];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error)
{
for(int i = 0; i <= results.count; i++){
NSLog(@"%@", [results objectAtIndex:i]);
}
}];
答案 0 :(得分:0)
您的首要问题是[PFQuery queryWithClassName]
会返回PFQuery
,如documentation所示。存储此查询实例可能不会为您提供任何有用的信息,因此您需要首先执行您实例化的查询并从中提取所需的数据,然后将其保存到kid
PFObject中的键。
我注意到的第二个问题是,对于您发布上述屏幕截图的任何表格,它似乎不是一个键student_id
。我假设这是一个错字,你打算写[kid setValue:[PFQuery queryWithClassName:@"Schools"] forKey:@"school_id"];
用以下代码替换上面提到的代码行应该可以达到预期的效果:
[PFQuery queryWithClassName:@"Schools"];
[query whereKey:@"school_id" equalTo:@"southwindE123"];
// getFirstObject can be used here because school_id
// is assumed to be a unique key
PFObject *school = [query getFirstObject];
[kid setValue:school forKey:@"school_id"];