如何访问ios7中的tableView单元格

时间:2014-03-11 07:44:16

标签: ios xcode sorting uitableview

我的单元格包含动态元素(2个独立的核心数据实体与一般用户ID连接)。我需要根据一个元素的参数(发送消息的日期)(副标题)对其进行排序。如何访问构造的tableView单元格?

===================

现在我根据我的第一个实体对单元格进行排序,然后根据其userId我从第二个实体添加参数。我想基于第二个实体的参数

对单元格进行排序

4 个答案:

答案 0 :(得分:1)

您可以创建要用于表的对象数组。然后你可以在之后对数组进行排序。

首先创建一个新的对象类来保存每个项目。 该对象将具有两个实体的属性。

现在直播并获取您的实体并将每个实体对添加到对象中。

获得对象数组后,您可以执行以下操作:

NSArray *sortedArray = [myObjectArray sortedArrayUsingComparator:^(MyObjectClass *a, MyObjectClass *b) {
    return [a.myParameter caseInsensitiveCompare:b.myParameter];
}];

当然,您需要在必要时重命名。

答案 1 :(得分:0)

您应该对包含核心数据实体的数组进行排序,然后相应地更新tableView。通过向NSFetchRequest添加NSSortDescriptor对数组进行排序。

答案 2 :(得分:0)

您可以使用NSFetchedResultsController,示例代码为here

一旦有了NSFetchedResultsController,只需将获取的对象插入表视图数据源方法即可,例如:

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

UITableViewCell *cell = <#Get the cell#>;
NSManagedObject *managedObject = [<#Fetched results controller#> objectAtIndexPath:indexPath];
// Configure the cell with data from the managed object.
return cell;
}

希望这会帮助你

它将帮助您在第二个实体的基础上对单元格进行排序:
 //设置示例谓词和排序顺序......

    NSNumber *minimumSalary = ...;
   NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"(lastName LIKE[c] 'Worsley') AND (salary > %@)", minimumSalary];
[request setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"firstName" ascending:YES];
[request setSortDescriptors:@[sortDescriptor]];

 NSError *error;
 NSArray *array = [moc executeFetchRequest:request error:&error];
 if (array == nil)
 {
// Deal with error...
  }

答案 3 :(得分:0)

除了Amos的回答

NSSortDescriptor *sortDescriptor =  [[NSSortDescriptor alloc] initWithKey:@"lastMessageDate" ascending:NO];
NSArray *sortedArray = [array sortedArrayUsingDescriptors:@[sortDescriptor]];

lastMessageDate - 是类的属性,我需要排序