我有一个数组
var friendsListGroupedFiltered = [Object]()
这个结构
struct Object {
var letters : String
var sectionObjects : [Friend]
}
包含另一个结构的对象数组
struct Friend {
let name: String
let image: UIImage?
let likes: Int
let isLiked: Bool
}
extension Friend: Equatable {
static func == (lhs: Friend, rhs: Friend) -> Bool {
return lhs.name == rhs.name
}
}
准确地说,我想为搜索栏做一个过滤功能。我尝试过这样的
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
guard !searchText.isEmpty else {
friendsListGroupedFiltered = friendsListGrouped
tableView.reloadData()
return
}
friendsListGroupedFiltered = friendsListGroupedFiltered.filter {
$0.sectionObjects.filter {
$0.name.range (of: searchText, options: .caseInsensitive) != nil
}
}
tableView.reloadData()
}
并出现错误
Cannot convert value of type '[Friend]' to closure result type 'Bool'
数组friendsListGroupedFiltered看起来像这样
[Object(
letters: "А",
sectionObjects: [
Friend(name: "Августин", image: Optional(, {200, 200}), likes: 20, isLiked: false),
Friend(name: "Акакий", image: Optional(, {200, 200}), likes: 20, isLiked: false),
Friend(name: "Алёша", image: Optional(, {200, 200}), likes: 20, isLiked: false),
Friend(name: "Армэн", image: Optional(, {200, 200}), likes: 20, isLiked: false)
]
),
Object(
letters: "В",
sectionObjects: [
Friend(name: "Вася", image: Optional(, {200, 200}), likes: 20, isLiked: false)
]
),
Object(
letters: "К",
sectionObjects: [
Friend(name: "Коловрат", image: Optional(, {200, 200}), likes: 20, isLiked: false)
]
)
等等
如何按“名称”对包含在另一个结构的另一个对象数组中的数组进行排序?
Tôi là một lập trình viên xuất sắc, rất giỏi!