如何基于手动排序的UITableView顺序对NSArray进行排序

时间:2014-02-05 12:21:51

标签: ios uitableview sorting nsarray

我有一个简单的UITableView以相反的顺序从给定的NSArray(NSDictionaries)形成,以便新添加的单元格出现在顶部:

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

    NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    cell.textLabel.text = [(NSDictionary*)list[list.count - indexPath.row - 1] objectForKey:@"name"];

    return cell;
}

然后可以由用户手动对表格进行排序:

http://i.stack.imgur.com/kn8BV.png

我的问题是如何按照下次用户启动应用时表保持新订单的方式对数组进行排序。

2 个答案:

答案 0 :(得分:0)

您应该将字典保存在本地文件(即JSON)中,并在下次用户启动时从存储的文件中加载它。您可以从此链接获取有关使用JSON保存文件的帮助。 Generate JSON string from NSDictionary

答案 1 :(得分:0)

我认为他们是一个NSdictionary数组,你正在从这个数组中加载表视图中的数据。现在你可以做的只是在你的字典中添加一个对象说“索引”。 现在,您可以按索引的递增或递减顺序排列数组,然后根据要求重新加载表视图。您可以使用以下代码来安排数据:

NSSortDescriptor *lowestToHighest = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES];
[yourAray sortUsingDescriptors:[NSMutableArray arrayWithObject:lowestToHighest]];