我目前通过parse.com设置系统
我尝试做的是能够在tableView
或PFQuerTableViewController
中查询我的用户发布的PFObject
帖子。目前我在下面有这个代码,它只是说“正在加载...”而不是显示他们的帖子。为什么不显示我用户的上一篇文章?
这是我试图获取用户帖子的查询:
- (PFQuery *)queryForTable {
PFQuery *postQuery = [PFQuery queryWithClassName:@"New"];
[postQuery whereKey:@"author" equalTo:[PFUser currentUser]];
// Run the query
[postQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
//Save results and update the table
postArray = objects;
[self.tableView reloadData];
}
}];
}
这是它的细胞:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
// If you want a custom cell, create a new subclass of PFTableViewCell, set the cell identifier in IB, then change this string to match
// You can access any IBOutlets declared in the .h file from here and set the values accordingly
// "Cell" is the default cell identifier in a new Master-Detail Project
static NSString *CellIdentifier = @"Cell";
PFTableViewCell *cell = (PFTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[PFTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell
//cell.textLabel.text = [object objectForKey:self.textKey];
//cell.imageView.file = [object objectForKey:self.imageKey];
PFObject *post = [postArray objectAtIndex:indexPath.row];
[cell.textLabel setText:[post objectForKey:@"title"]];
return cell;
}
此处还有我发布PFObject的代码:
-(IBAction)done:(id)sender {
PFUser *user = [PFUser currentUser];
PFObject *quoteNew = [PFObject objectWithClassName:@"New"];
[quoteNew setObject:user forKey:@"user"];
[quoteNew setObject:[[self quoteText] text] forKey:@"quoteText"];
[quoteNew setObject:[[self attributionTitle] text] forKey:@"title"];
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeIndeterminate;
hud.labelText = @"Uploading";
[hud show:YES];
[quoteNew saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (!error) {
//[self done:self];
[hud hide:YES];
[self dismissViewControllerAnimated:YES completion:nil];
} else {
[hud hide:YES];
}
}];
答案 0 :(得分:0)
您正尝试在queryForTable
方法中运行查询。这不是它的用途。在queryForTable
中,您应该使用所需的约束(如您添加的作者内容)构建查询,然后返回查询。所以对于你的情况:
- (PFQuery *)queryForTable {
PFQuery *postQuery = [PFQuery queryWithClassName:@"New"];
[postQuery whereKey:@"author" equalTo:[PFUser currentUser]];
// Don't run the query, return it so PFQueryTableViewcontroller can use it
return postQuery;
}
如果您想以编程方式告诉您的PFQueryTableViewController加载新帖子,您可以运行[self loadObjects]
。
注意:这仅适用于您继承PFQueryTableViewController
的情况我建议阅读文档,它可以很好地解决所有问题here。
答案 1 :(得分:0)
您正在将密钥设置为用户
[quoteNew setObject:user forKey:@"user"];
然后查询作者
[postQuery whereKey:@"author" equalTo:[PFUser currentUser]];
尝试改为
[postQuery whereKey:@"user" equalTo:[PFUser currentUser]];