表视图不显示来自Parse.com的数据

时间:2013-10-25 00:11:10

标签: objective-c uitableview cocoa parse-platform

在我的视图控制器中,我刚添加了一个TableView。 我在file.h中输入了file.m的所有代理。 即使在故事板中也已正确输入单元格的标识,并且自定义单元格已连接到我创建的单元格自定义类。

现在我把这段代码(使用Parse.com)没有得到任何一种错误,代码总是超级干净,但是当我去运行表时没有向我显示任何数据,好像它已连接如果没有重用标识符,则单元格或作为自定义类,而不是两个步骤都已完成...我不明白为什么我看不到任何内容...你能弄清楚错误是什么吗?

# import " FFFriendInAttesa.h "
# import " FFCustomCellFriendInAttesa.h "

@ interface FFFriendInAttesa ()    
@ end    
@ implementation FFFriendInAttesa


- (Void) viewDidLoad
{
    [super viewDidLoad ] ;
    self.FFTableView.delegate = self ;
    self.FFTableView.dataSource = self ;
    [self QueryForTableView ] ;
}


- ( NSInteger ) numberOfSectionsInTableView : ( UITableView * ) tableView
{
    return 1;
}

- ( NSInteger ) tableView : ( UITableView * ) tableView numberOfRowsInSection : ( NSInteger ) section {
    return [ self.UtentiInAttesa count] ;       
     }

- (void) { QueryForTableView
    
    PFQuery QueryForUserClass * = [ PFUser query ] ;
    [ QueryForUserClass findObjectsInBackgroundWithBlock : ^ ( NSArray * objects , NSError * error ) {
        if ( error) {
            self.UtentiInAttesa = objects ;
            NSLog ( @ " start query : % @ " , self.UtentiInAttesa ) ;
        }
    } ] ;
    [ self.FFTableView reloadData ] ;
}


- ( UITableViewCell * ) tableView : ( UITableView * ) tableView cellForRowAtIndexPath : ( NSIndexPath * ) indexPath
{
    static NSString * CellIdentifier = @ " CellaAmici " ;
    FFCustomCellFriendInAttesa * cell = [ self.FFTableView dequeueReusableCellWithIdentifier : CellIdentifier forIndexPath : indexPath ] ;
    if ( cell) {
        cell = [ [ FFCustomCellFriendInAttesa alloc ] initWithStyle : UITableViewCellStyleDefault reuseIdentifier : @ " CellaAmici "] ;
    }
        PFObject * user = [ self.UtentiInAttesa objectAtIndex : indexPath.row ] ;
        cell.FFNomeFriendLabel.text = [user objectForKey : FF_USER_NOMECOGNOME ] ;
          
    return cell ;
}

@ end

File.h

#import <UIKit/UIKit.h>
#import <Parse/Parse.h>

@interface FFFriendInAttesa : UIViewController <UITableViewDataSource, UITableViewDelegate>

@property (strong, nonatomic) IBOutlet UITableView *FFTableView;
@property (strong, nonatomic) NSArray *UtentiInAttesa;

@end

1 个答案:

答案 0 :(得分:1)

您的错误是在数据源更新之前刷新了表视图。你应该这样做:

- (void)QueryForTableView {
PFQuery QueryForUserClass * = [ PFUser query ] ;
[ QueryForUserClass findObjectsInBackgroundWithBlock : ^ ( NSArray * objects , NSError * error ) {
    // You put a wrong condition, objecs only returned when no error.
    if (!error) {
        self.UtentiInAttesa = objects ;
        NSLog ( @ " start query : % @ " , self.UtentiInAttesa ) ;
        // Refresh your tableview here
         [ self.FFTableView reloadData ] ;
    }
} ] ;

}