2015-11-14 59 views
2

我有一個Swift1書,但我有Xcode 7.所以我編寫Swift2基於Swift1書。我目前正在學習Swift閉包,但下面的代碼會產生一個錯誤。如何解決Swift Sort函數錯誤?

import Cocoa 

let names = ["Chris","Alex","Ewa","Barry","Daniella"] 

func backwards(s1: String, s2: String) -> Bool { 
    return s1 > s2 
} 

print("Unsort names: \(names)") 

var reversed = sort(names, backwards) 
print("sort names: \(reversed)") 

這是錯誤:

Playground execution failed: /var/folders/kt/t3wp7ckx3h1c33tfm44r4zgr0000gn/T/./lldb/1968/playground150.swift:11:16: 
error: cannot invoke 'sort' with an argument list of type '([String], (String, s2: String) -> Bool)' 
var reversed = sort(names, backwards) 
      ^
/var/folders/kt/t3wp7ckx3h1c33tfm44r4zgr0000gn/T/./lldb/1968/playground150.swift:11:16: 
note: overloads for 'sort' exist with these partially matching parameter lists: (inout C, (C.Generator.Element, C.Generator.Element) -> Bool), (inout [T], (T, T) -> Bool), (inout ContiguousArray<T>, (T, T) -> Bool) 
var reversed = sort(names, backwards) 

回答

0

你必須排序功能應用到一個數組對象

var reversed = names.sort(backwards) 

下面是我的遊樂場截圖

enter image description here

+0

謝謝!我非常幫助! –