3

現在、parse.com を通じてシステムをセットアップしています。

私がやろうとしているのは、ユーザーが投稿した投稿をクエリできるようにすることtableViewです。現在、私は以下のコードを持っており、投稿を表示する代わりに「読み込み中..」とだけ言っています。ユーザーの最新の投稿が表示されないのはなぜですか?PFQuerTableViewControllerPFObject

これは、ユーザーの投稿を取得しようとしているクエリです。

- (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];

        }

    }];
4

2 に答える 2

0

キーをユーザーとして設定しています

[quoteNew setObject:user forKey:@"user"];

次に、著者のクエリ

[postQuery whereKey:@"author" equalTo:[PFUser currentUser]];

代わりに試す

[postQuery whereKey:@"user" equalTo:[PFUser currentUser]];
于 2014-03-11T01:36:11.737 に答える
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 をサブクラス化する場合にのみ適用されます。

ドキュメントを読むことをお勧めします。ここではすべてがかなりうまくレイアウトされています。

于 2013-11-11T06:20:22.773 に答える