Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift 2中对字典数组进行排序_Ios_Arrays_Swift_Sorting_Dictionary - Fatal编程技术网

Ios 在Swift 2中对字典数组进行排序

Ios 在Swift 2中对字典数组进行排序,ios,arrays,swift,sorting,dictionary,Ios,Arrays,Swift,Sorting,Dictionary,我已经读了很多关于SO的文章,但我仍然感到困惑!我有一系列字典,请参见下文: var myArray = [[String:AnyObject]]() myArray.append([ "caseNumber" : "12349", "formType" : "Advanced", "caseStatus" : "Approved", "caseDetails" : "blah blah", "caseLUD" : NSDate(), "frie

我已经读了很多关于SO的文章,但我仍然感到困惑!我有一系列字典,请参见下文:

var myArray = [[String:AnyObject]]()

myArray.append([
    "caseNumber" : "12349",
    "formType" : "Advanced",
    "caseStatus" : "Approved",
    "caseDetails" : "blah blah",
    "caseLUD" : NSDate(),
    "friendlyName" : "name1"
    ])

myArray.append([
    "caseNumber" : "12345",
    "formType" : "Standard",
    "caseStatus" : "On-Hold",
    "caseDetails" : "blah blah",
    "caseLUD" : NSDate(),
    "friendlyName" : "name2"
    ])

myArray.append([
    "caseNumber" : "12342",
    "formType" : "Normal",
    "caseStatus" : "Rejected",
    "caseDetails" : "blah blah",
    "caseLUD" : NSDate(),
    "friendlyName" : "name3"
    ])

该数据将进入表格视图,我希望用户能够通过
caseNumber
或my
caseLUD
(日期)来决定排序顺序。但我不知道如何按值对数组重新排序。有什么想法吗?感谢所有帮助。

要按
案例编号排序

myArray.sortInPlace { ($0["caseNumber"] as! String) < ($1["caseNumber"] as! String) }
要按案例LUD进行排序,请执行以下操作:

myArray.sortInPlace { ($0["caseLUD"] as! NSDate).compare($1["caseLUD"] as! NSDate) == .OrderedAscending}
.OrderedAscending
将首先给出最早的日期,
.OrderedAscending
将首先给出最晚的日期


如果将数据存储在
结构
而不是
字典
中,可以避免混乱的类型转换

struct CaseRecord {
    var caseNumber: Int
    var formType: String
    var caseStatus: String
    var caseDetails: String
    var caseLUD: NSDate
    var friendlyName: String
}

var myArray = [CaseRecord]()

myArray.append(CaseRecord(
    caseNumber : 12345,
    formType : "Advanced",
    caseStatus : "Approved",
    caseDetails : "blah blah",
    caseLUD : NSDate(),
    friendlyName : "name1"
    )
)

myArray.append(CaseRecord(
    caseNumber : 124,
    formType : "Standard",
    caseStatus : "On-Hold",
    caseDetails : "blah blah",
    caseLUD : NSDate(),
    friendlyName : "name2"
    )
)

myArray.append(CaseRecord(
    caseNumber : 13,
    formType : "Normal",
    caseStatus : "Rejected",
    caseDetails : "blah blah",
    caseLUD : NSDate(),
    friendlyName : "name3"
    )
)

myArray.sortInPlace { $0.caseNumber < $1.caseNumber }

myArray.sortInPlace { $0.caseLUD.compare($1.caseLUD) == .OrderedDescending }
struct casecord{
var案例编号:Int
var formType:String
var caseStatus:字符串
var caseDetails:字符串
变量caseLUD:NSDate
var-friendlyName:String
}
var myArray=[CaseRecord]()
myArray.append(CaseRecord)(
案件编号:12345,
formType:“高级”,
案例状态:“已批准”,
案件详情:“胡说八道”,
caseLUD:NSDate(),
friendlyName:“名称1”
)
)
myArray.append(CaseRecord)(
案件编号:124,
formType:“标准”,
案件状态:“待决”,
案件详情:“胡说八道”,
caseLUD:NSDate(),
friendlyName:“名称2”
)
)
myArray.append(CaseRecord)(
案件编号:13,
formType:“正常”,
案例状态:“已拒绝”,
案件详情:“胡说八道”,
caseLUD:NSDate(),
friendlyName:“名称3”
)
)
myArray.sortInPlace{$0.caseNumber<$1.caseNumber}
myArray.sortInPlace{$0.caseLUD.compare($1.caseLUD)==.OrderedDescending}

如果已将字典放入数组,只需对数组进行排序即可。Swift数组有一个
排序
方法。你试过了吗?在Obj-C中我做过:NSSortDescriptor*sortByName=[NSSortDescriptor sortdescriptor with key:@“caseLUD”升序:否];NSArray*sortDescriptors=[NSArray阵列WithObject:sortByName];但我不能用迅捷的语言来表达感谢,这很有帮助。
struct CaseRecord {
    var caseNumber: Int
    var formType: String
    var caseStatus: String
    var caseDetails: String
    var caseLUD: NSDate
    var friendlyName: String
}

var myArray = [CaseRecord]()

myArray.append(CaseRecord(
    caseNumber : 12345,
    formType : "Advanced",
    caseStatus : "Approved",
    caseDetails : "blah blah",
    caseLUD : NSDate(),
    friendlyName : "name1"
    )
)

myArray.append(CaseRecord(
    caseNumber : 124,
    formType : "Standard",
    caseStatus : "On-Hold",
    caseDetails : "blah blah",
    caseLUD : NSDate(),
    friendlyName : "name2"
    )
)

myArray.append(CaseRecord(
    caseNumber : 13,
    formType : "Normal",
    caseStatus : "Rejected",
    caseDetails : "blah blah",
    caseLUD : NSDate(),
    friendlyName : "name3"
    )
)

myArray.sortInPlace { $0.caseNumber < $1.caseNumber }

myArray.sortInPlace { $0.caseLUD.compare($1.caseLUD) == .OrderedDescending }