Сортировать массив объектов по двум свойствам

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
25
задан tobygriffin 9 April 2015 в 05:41
поделиться

1 ответ

Я создал пост в блоге о том, как это сделать в Swift 3, и чтобы код был простым и читабельным.

Вы можете найти его здесь:

http://master-method.com/index.php/2016/11/23/sort-a-sequence-ie-arrays-of- objects-multi-properties-in-swift-3 /

Вы также можете найти репозиторий GitHub с кодом здесь:

https://github.com/jallauca /SortByMultipleFieldsSwift.playground

Суть всего этого, скажем, если у вас есть список местоположений, вы сможете сделать это:

struct Location {
    var city: String
    var county: String
    var state: String
}

var locations: [Location] {
    return [
        Location(city: "Dania Beach", county: "Broward", state: "Florida"),
        Location(city: "Fort Lauderdale", county: "Broward", state: "Florida"),
        Location(city: "Hallandale Beach", county: "Broward", state: "Florida"),
        Location(city: "Delray Beach", county: "Palm Beach", state: "Florida"),
        Location(city: "West Palm Beach", county: "Palm Beach", state: "Florida"),
        Location(city: "Savannah", county: "Chatham", state: "Georgia"),
        Location(city: "Richmond Hill", county: "Bryan", state: "Georgia"),
        Location(city: "St. Marys", county: "Camden", state: "Georgia"),
        Location(city: "Kingsland", county: "Camden", state: "Georgia"),
    ]
}

let sortedLocations =
    locations
        .sorted(by:
            ComparisonResult.flip <<< Location.stateCompare,
            Location.countyCompare,
            Location.cityCompare
        )
1
ответ дан Jaime Allauca 9 April 2015 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: