我有一个奇怪的问题,我写的一些代码在iPhone模拟器上工作正常,但在手机本身无法正常工作。
基本上我正在对一组对象进行排序。排序将在NSString类型的成员上执行。
这是我的班级定义:
class Event: NSObject {
var act: NSString!
var start: NSDate!
var end: NSDate!
}
这里是我用来包装Event对象集合的类的定义。
class Events: NSObject {
var events = [Event]()
func add(event: Event){
events.append(event)
}
}
我需要对数组进行排序,以便按行为的字母顺序排列。我是这样做的:
var result = allEvents.values.array as [Event]
sort(&result){$0.act < $1.act as String}
问题是:这在模拟器中运行良好,但在iPhone上运行时,结果数组按初始插入顺序排列。
我也尝试过:
result.sort({$0.act < $1.act as String})
但是我得到了相同的未分类结果。
关于我做错了什么的线索?
答案 0 :(得分:0)
在事件中尝试此操作,并在要对数组进行排序时调用它 如果这不起作用而不是使用字符串!而不是NSString!
Swift 1.2
func sortEvents()
{ events.sort(){
return $0.act.localizedStandardCompare($1.act) == NSComparisonResult.OrderedAscending }
}
Swift 2.0
func sortEvents()
{ events.sortInPlace(){
return $0.act.localizedStandardCompare($1.act) == NSComparisonResult.OrderedAscending }
}