我的问题是,如果只有特定帖子的数据存在才能显示一个单元格。我正在思考这个问题。
- (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;
}
我已经尝试了这个但是我无法让它以每种方式尝试,任何帮助都会得到帮助,谢谢你的进步。
答案 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,解析代码基本上不知道表视图。