如何按保存顺序对表格视图中的数据进行排序?
Posted
技术标签:
【中文标题】如何按保存顺序对表格视图中的数据进行排序?【英文标题】:How to sort data in a Table View by the order in which they were saved? 【发布时间】:2014-03-16 17:08:48 【问题描述】:我在 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];
谢谢!
【问题讨论】:
看起来_notes是在notes方法中返回之前需要排序的数组。 问题是对现有数据进行排序?还是在顶部添加新数据? 问题在于对任何现有数据进行排序。 【参考方案1】:您可以将包含日期/时间(连同您的笔记数据)的对象存储到数组中 - 然后您可以按该值对数组进行排序,以按创建顺序或反向创建顺序获取它们。
另一个选项可能是因为项目总是添加到最后,所以在表格中显示时只需以相反的顺序读取数组。这可能会有所帮助:
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/instm/NSArray/reverseObjectEnumerator
事实上,看看 NSArray 上的所有方法 - 那里有一些非常好的和有用的东西。
希望这会有所帮助。
【讨论】:
以上是关于如何按保存顺序对表格视图中的数据进行排序?的主要内容,如果未能解决你的问题,请参考以下文章