2016-04-19 72 views
0

在我的应用程序中,我有一个UITableView将填充核心日期项目。通过NSDate重新排序动态UITableView

正如你可以在这个帖子看到,我已经问了排序功能: https://stackoverflow.com/a/36703648/6012187

func ReSort() { 
    CoreDataItems.sortInPlace({sortAscending ? $0.RowName < $1.RowName : $0.RowName > $1.RowName}) 
    sortAscending = !sortAscending 
    tableView.reloadData() 
} 

现在的问题是,我怎么能动态地设置RowName价值?例如, 。我将RowName保存在用户默认值中。

$0.defaults.objectForKey("xx")不无语法错误工作

下一个问题是:

我如何排序与一排,其价值是的NSDate?

回答

0

您可以排序的NSArray其中包含的NSDate通过使用此代码:

// objective-c code 
NSSortDescriptor *dateDescriptor = [NSSortDescriptor 
          sortDescriptorWithKey:@"startDateTime" 
             ascending:YES]; 
NSArray *sortDescriptors = [NSArray arrayWithObject:dateDescriptor]; 
NSArray *sortedEventArray = [nodeEventArray 
sortedArrayUsingDescriptors:sortDescriptors]; 

//swift code 
let dateDescriptor :NSSortDescriptor = NSSortDescriptor(key: "startDateTime", ascending: true) 
let sortdescriptors: NSArray = [dateDescriptor] 
let sortedeventarray = nodeEventArray.sortedArrayUsingDescriptors([dateDescriptor]) 

排序完成后,你可以重新载入你的tableview

+0

没有的NSArray, - CoreDataItems是NSManagedObject。我也需要一个迅速的解决方案,请:) – Stack108

+0

和你在哪里排序我的CoreDataItems值在你的代码部分。有了这个代码,我必须从核心数据中请求新的数据,不是吗? – Stack108

+1

你可以以数组的形式从coredata中获取nsmanagedobjects。 – user3815344

相关问题