2013-11-11 3 views
3

я в настоящее время у меня система, созданная с помощью parse.comКак запросить сообщение пользователя?

Что Im пытается сделать это, чтобы иметь возможность в tableView или PFQuerTableViewController быть в состоянии запросить пост, который является PFObject, что мой пользователь отправил. В настоящее время у меня есть этот код ниже и его единственное высказывание «Загрузка ..» вместо отображения их сообщений. Почему он не отображает последние сообщения моего пользователя?

Это запрос, в котором Im пытаясь принести пользователям размещать:

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

Вы пытаетесь выполнить запрос в методе 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.

+0

бы добавить "автора", когда я отправляю PFObject? Могу ли я изменить код ниже, чтобы добавить «Автор»? 'PFObject * quoteNew = [PFObject objectWithClassName: @ "New"]; [quoteNew setObject: user forKey: @ "user"]; [quoteNew setObject: [[self quoteText] text] forKey: @ "quoteText"]; [quoteNew setObject: [[self attributionTitle] text] forKey: @ "title"]; ' – user1555256

+0

Когда вы пытаетесь создать новый объект? В вашем вопросе у вас есть это в IBOutlet - вы хотите запустить его, когда пользователь нажимает на что-то? –

+0

Да, когда я создам объект, мне придется включить «Автор»? – user1555256

0

Вы устанавливаете ключ, как пользователь

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

Затем запрашивая автора

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

Попробуйте вместо

[postQuery whereKey:@"user" equalTo:[PFUser currentUser]]; 
Смежные вопросы