迅速.排序结构数组

Fra*_*nck 2 arrays sorting xcode swift

我需要订购一个数组struct.

我试过了:

let aRes =  self.aSoundTracks_Filtered.sort{ $0.st < $1.st }
Run Code Online (Sandbox Code Playgroud)

提供错误:无法使用类型为'((_,_) - > _)'的参数列表调用'sort'

也尝试这个:

let hasPrefixAndSuffixw =  self.aSoundTracks_Filtered.sort( $0.st < $1.st )
Run Code Online (Sandbox Code Playgroud)

提供错误:匿名闭包参数未包含在闭包中

任何的想法?:)

我的aSoundTracks_Filtered是这样的:

   var aSoundTracks_Filtered = [SoundTrack]()
Run Code Online (Sandbox Code Playgroud)

我的结构是这样的:

struct SoundTrack {
    let sID : Int
    let st : String
}
Run Code Online (Sandbox Code Playgroud)

Vic*_*ler 8

以下列方式在Playground中测试时,您的代码工作正常:

struct SoundTrack {
   let sID : Int
   let st : String
}

var aSoundTracks_Filtered = [SoundTrack]()

aSoundTracks_Filtered.append(SoundTrack(sID: 1, st: "a"))
aSoundTracks_Filtered.append(SoundTrack(sID: 2, st: "b"))

aSoundTracks_Filtered.sort{ $0.st > $1.st } // [{sID 2, st "b"}, {sID 1, st "a"}]
Run Code Online (Sandbox Code Playgroud)

sort()就地排列阵列.您可能想要使用的是sorted(),它不会修改原始数组并返回一个新的排序数组:

let aRes = aSoundTracks_Filtered.sorted{ $0.st > $1.st }
Run Code Online (Sandbox Code Playgroud)

上面的代码是针对Swift 1.2的,对于Swift 2.0,返回一个排序的数组再次被称为"sort",但它现在是一个(协议扩展)方法而不是全局函数.我希望这对你有帮助.