如果语句显示单元格

时间:2015-01-12 20:18:52

标签: ios objective-c parse-platform

我的问题是,如果只有特定帖子的数据存在才能显示一个单元格。我正在思考这个问题。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {
    PFQuery *query = [PFQuery queryWithClassName:@"Post"];
    if(![query includeKey:@"Photo"]) {
        UITableViewCell *cell = [self tableView:tableView cellForNextPageAtIndexPath:indexPath];
        return cell;
    }

    static NSString *CellIdentifier = @"PhotoCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    PFImageView *photo = (PFImageView *)[cell viewWithTag:1];
    photo.file = object[@"image"];
    [photo loadInBackground];

    return cell;
}

我已经尝试了这个但是我无法让它以每种方式尝试,任何帮助都会得到帮助,谢谢你的进步。

1 个答案:

答案 0 :(得分:0)

表需要一个模型,该模型几乎总是一个数组。数据源协议的工作是询问该数组。

那你的阵列里有什么?有时没有,因为你还没有为它获取数据,或者因为用户没有属于那里的数据。从你的问题来看,听起来有时你的数组有1个元素 - 表示帖子或图像的东西 - 有时你的数组有2个元素 - 代表帖子图像。

以这种方式思考可以让你将你的工作分成两部分:(1)进行提取并创建一个代表当前状态的数组,(2)实现一个向用户呈现该数组状态的表。

让我们从数组开始(注意这是伪代码,意在说明这个想法):

// in interface
@property(strong,nonatomic) NSMutableArray *model;

// in init
_model = [NSMutableArray array];

// sometime at or after viewDidAppear, update your model by querying parse
// I don't understand your parse data model, but you want some query
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        // based on the parse objects returned, initialize model
        [self.model addObject: ...];

        // tell your table that the model has changed
        [self.tableView reloadData];
    }
}];

在其他地方处理数组时,数据源作业更简单:

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    // dequeue a cell, configure its subviews based on self.model[indexPath.row]
    // no parse code here.  aim to configure the cell strictly based on the model
    return cell;
}

注意表视图如何不知道parse.com,解析代码基本上不知道表视图。