2015-07-19 3 views
2

Я использую Xcode 6.3, и следующий код в книге Язык программирования Swift:Как перебирать отсортированный набор?

var fav:Set=["cd","bsa","aft"] 
for genre in fav.sort(){ 
    println("\(genre)") 
} 

Но компилятор сообщил об ошибке

«Set» не имеет элемента назвали «своего рода»

ли компании Apple добавила sort() к Set в Xcode 6.4, или я использую его в неправильном направлении?

ответ

2

Вы читаете неправильную версию iBook, если используете Xcode 6.3. В настоящее время доступны две версии этой книги.

  1. The Swift Programming Language
  2. The Swift Programming Language (Swift 2 Prerelease)

Первый содержит примеры с использованием Swift 1.2, который поставляется с Xcode 6.3, тогда как последний переводит эти примеры Swift 2, который требует Xcode 7.

В случае кода, который вы предоставили, Apple предоставляет следующий пример из книги без предварительной записи.

for genre in sorted(favoriteGenres) { 
    println("\(genre)") 
} 

который использует глобальную sorted() функции Swift 1, которая (а также глобальную sort() функции) была удалена в Swift 2. В Swift 2, оба из этих глобальных функций были заменены sort() метод экземпляра, объявленных с помощью расширения протокола.

2

Вот краткое сравнение:

Swift 2

var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"] 
for genre in favoriteGenres.sort() { 
    print("\(genre)") 
} 

Swift 1,2

var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"] 
for genre in sorted(favoriteGenres) { 
    println("\(genre)") 
} 

См Collection Types для получения дополнительной документации.

Смежные вопросы