如何按表格视图中的数据排序保存顺序?

时间:2014-03-16 17:08:48

标签: ios objective-c arrays uitableview sorting

我在Xcode中有一个表视图,该视图正由应用程序用户保存到iCloud的信息填充。所以我的问题是,每当用户保存他们的数据时,保存的数据就会被添加到数据表视图的每个底部而不是顶部,这是我希望它保存后的位置。 。正在保存的数据被保存到一个数组中,然后填充表视图,但我不确定如何对数组进行排序,因为每隔一段时间就会有新数据被添加到数组中。这是我正在使用的数组的代码:

- (NSArray *)notes
{
    if (_notes) {
        return _notes;
    }

    _notes = [[[NSUbiquitousKeyValueStore defaultStore] arrayForKey:@"AVAILABLE_NOTES"] mutableCopy];
    if (!_notes) _notes = [NSMutableArray array];

    return _notes;
}

此处的操作正在保存数据:

- (IBAction)save:(id)sender {


    // Notify the previouse view to save the changes locally
    [[NSNotificationCenter defaultCenter] postNotificationName:@"New Note" object:self userInfo:[NSDictionary dictionaryWithObject:self.finalScore.text forKey:@"Note"]];

    [self dismissViewControllerAnimated:YES completion:nil];


}

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将对象存储到包含日期/时间的数组(以及注释数据) - 然后您可以按该值对数组进行排序,以使其按创建顺序或反向创建顺序。

另一个选项可能是因为项目总是在末尾添加,只需在表格中显示时以相反的顺序读取数组。这可能会有所帮助:

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/instm/NSArray/reverseObjectEnumerator

事实上,看看NSArray上的所有方法 - 那里有一些非常好用的东西。

希望这有帮助。